Home » SQL & PL/SQL » SQL & PL/SQL » Check this code !
Check this code ! [message #193723] Tue, 19 September 2006 02:34 Go to next message
guru_karnam
Messages: 142
Registered: May 2005
Senior Member

SQL> DESC SERVICEBUNDLE
Name Null? Type
----------------------------------------- -------- ----------------------------
SERVICEBUNDLEID NOT NULL NUMBER(9)
DISPLAYORDER NOT NULL NUMBER(4)
NAME_L1 NOT NULL VARCHAR2(100 CHAR)
NAME_L2 VARCHAR2(100 CHAR)
NAME_L3 VARCHAR2(100 CHAR)
NAME_L4 VARCHAR2(100 CHAR)
DESCRIPTION_L1 VARCHAR2(400 CHAR)
DESCRIPTION_L2 VARCHAR2(400 CHAR)
DESCRIPTION_L3 VARCHAR2(400 CHAR)
DESCRIPTION_L4 VARCHAR2(400 CHAR)
SUBSCRIPTIONSTARTDATE NOT NULL DATE
SUBSCRIPTIONENDDATE DATE
ACCOUNTTYPEENUM NOT NULL VARCHAR2(8 CHAR)
ACCOUNTLOGIN NOT NULL VARCHAR2(50 CHAR)
HASPREVIEW NOT NULL CHAR(1)
HASTRANSLATION_L1 NOT NULL CHAR(1)
HASTRANSLATION_L2 CHAR(1)
HASTRANSLATION_L3 CHAR(1)
HASTRANSLATION_L4 CHAR(1)
ISDELETED NOT NULL CHAR(1)
MODIFCOUNT NOT NULL NUMBER(9)
MODIFDATE NOT NULL DATE
MODIFUSER NOT NULL VARCHAR2(20 CHAR)


*Name_l1,name_l2,name_l3,name_l4 has unique constraints on them.



create or replace type servbundle as object
(
ServBundleId number(9),
DisplayOrder number(3),
NameL1 varchar2(100),
NameL2 varchar2(100),
NameL3 varchar2(100),
NameL4 varchar2(100),
DescriptionL1 varchar2(400),
DescriptionL2 varchar2(400),
DescriptionL3 varchar2(400),
DescriptionL4 varchar2(400),
SubStartDate date,
SubEndDate date,
-- Changes for version 3.0.2 Srinivas START
--oneMonthSubPrice number(16,6),
--ThreeMonthsSubPrice number(16,6),
---ContProvCode varchar2(Cool,
ACCOUNTTYPEENUM VARCHAR2(8 CHAR),
ACCOUNTLOGIN VARCHAR2(50 CHAR),
HASPREVIEW CHAR(1 BYTE),
-- changes for version 3.0.4
--PICTUREID NUMBER(9),
-- changes 3.0.2 End
--Changes for Version3.0.1(Servicebundle)..Srinivas..
--SAFileGenStatusEnum varchar2(Cool,
HasTransL1 number(2),
HasTransL2 number(2),
HasTransL3 number(2),
HasTransL4 number(2),
isDeleted number(2),
ModDate date,
ModifUser varchar2(20)
)

My procedure is


procedure createServBundle
(
i_ServiceBundle in out ServBundle
)
as

v_servBundle ServiceBundle%ROWTYPE ;
v_count integer := 0;
v_UniqueID integer := 0;
v_dispOrder number;
errMsg varchar2(250) := null;
v_isdeleted number;

begin

select max(displayOrder) into v_disporder from servicebundle
where isdeleted=0;

v_disporder := nvl(v_dispOrder,0)+1;

select count(*) into v_count from servicebundle where
(Name_L1 = i_ServiceBundle.namel1 and isDeleted=0 and HasTranslation_L1=1) or
(Name_L2 = i_ServiceBundle.namel2 and isDeleted=0 and HasTranslation_L2=1) or
(Name_L3 = i_ServiceBundle.namel3 and isDeleted=0 and HasTranslation_L3=1) or
( Name_L4 = i_ServiceBundle.namel4 and isDeleted=0 and HasTranslation_L4=1) ;

if(v_count = 0 ) then

Select EsgId_seq.nextval into v_uniqueID from dual;

Insert into ServiceBundle (
ServiceBundleID,
Displayorder,
Name_L1,
Name_L2,
Name_L3,
Name_L4,
Description_L1,
Description_l2,
Description_L3,
Description_l4,
SubscriptionStartDate,
SubscriptionEndDate,
--changes for version 3.0.2 Srinivas
--OneMonthSubscriptionPrice,
--ThreeMonthsSubscriptionPrice,
-- ContentProviderCode,
AccountTypeEnum,
Accountlogin,
HasPreview,
-- Pictureid,
/* SAFileGenerationStatusEnum ,*/
HasTranslation_L1,
HasTranslation_L2,
HasTranslation_l3,
HasTranslation_L4,
isDeleted
)
values(
v_UniqueID,
v_dispOrder,
i_ServiceBundle.NameL1,
i_ServiceBundle.NameL2,
i_ServiceBundle.NameL3,
i_ServiceBundle.NameL4,
i_ServiceBundle.DescriptionL1,
i_ServiceBundle.DescriptionL2,
i_ServiceBundle.DescriptionL3,
i_ServiceBundle.DescriptionL4,
i_ServiceBundle.SubStartDate,
i_ServiceBundle.SubEndDate,
-- changes for version 3.0.2
--i_ServiceBundle.oneMonthSubPrice,
--i_ServiceBundle.ThreeMonthsSubPrice,
--i_ServiceBundle.ContProvCode,
/* i_ServiceBundle.SAFileGEnStatusEnum,*/
i_ServiceBundle.ACCOUNTTYPEENUM,
i_ServiceBundle.ACCOUNTLOGIN,
i_ServiceBundle.HASPREVIEW,
--release 3.0.4
--case when i_ServiceBundle.PICTUREID <=0 then null else i_ServiceBundle.PICTUREID end,
i_ServiceBundle.HasTransL1,
i_ServiceBundle.HasTransL2,
i_ServiceBundle.HasTransL3,
i_ServiceBundle.HasTransL4,
i_ServiceBundle.isDeleted
);





else

v_uniqueID := i_ServiceBundle.ServBundleId;

update servicebundle set ServiceBundleID= v_UniqueID,
Displayorder= v_dispOrder,
Name_L1= i_ServiceBundle.NameL1,
Name_L2= i_ServiceBundle.NameL2,
Name_L3= i_ServiceBundle.NameL3,
Name_L4= i_ServiceBundle.NameL4,
Description_L1= i_ServiceBundle.DescriptionL1,
Description_l2= i_ServiceBundle.DescriptionL2,
Description_L3= i_ServiceBundle.DescriptionL3,
Description_l4= i_ServiceBundle.DescriptionL4,
SubscriptionStartDate= i_ServiceBundle.SubStartDate,
SubscriptionEndDate= i_ServiceBundle.SubEndDate,
AccountTypeEnum= i_ServiceBundle.ACCOUNTTYPEENUM,
Accountlogin= i_ServiceBundle.ACCOUNTLOGIN,
HasPreview= i_ServiceBundle.HASPREVIEW,
HasTranslation_L1= i_ServiceBundle.HasTransL1,
HasTranslation_L2= i_ServiceBundle.HasTransL2,
HasTranslation_l3= i_ServiceBundle.HasTransL3,
HasTranslation_L4= i_ServiceBundle.HasTransL4,
isDeleted = 0 ;



end if;

Select * into v_servBundle from ServiceBundle
where ServiceBundleId = v_UniqueID;


i_ServiceBundle := ServBundle(v_servBundle.ServiceBundleId,
v_servBundle.Displayorder,
v_servBundle.Name_L1,
v_servBundle.Name_L2,
v_servBundle.Name_L3,
v_servBundle.Name_L4,
v_servBundle.Description_L1,
v_servBundle.Description_L2,
v_servBundle.Description_L3,
v_servBundle.Description_L4,
v_servBundle.SubscriptionStartDate,
v_servBundle.SubscriptionEndDate,
-- changes for version 3.0.2 Srinivas
--v_servBundle.oneMonthSubscriptionPrice,
--v_servBundle.ThreeMonthsSubscriptionPrice,
--v_servBundle.ContentProviderCode,
/* v_servBundle.SAFileGenerationStatusEnum, */
v_servBundle.Accounttypeenum,
v_servBundle.Accountlogin,
v_servBundle.Haspreview,
--release 3.0.4
-- v_servBundle.Pictureid,
v_servBundle.HasTranslation_L1,
v_servBundle.HasTranslation_L2,
v_servBundle.HasTranslation_L3,
v_servBundle.HasTranslation_L4,
v_servBundle.isDeleted,
v_servBundle.ModifDate,
v_servBundle.ModifUser
);

exception


when others then


errMsg := substr(sqlerrm,1,200);
if(sqlcode < -20000 and sqlcode > -20999) then
raise_application_error(sqlcode, 'Create ServiceBundle : ' || errMsg);
else
raise_application_error(-20999, 'Create ServiceBundle : ' || errMsg, true);
end if;


end createServbundle;



So, front end passes i_ServiceBundle as input.

When

name_l1 is passed then hastranslation_l1 becomes 1 otherwise 0

simlilarly when name_l2 is passed then hastranslation_2 becomes 1 otherwise 0

simlilarly when name_l3 is passed then hastranslation_3 becomes 1 otherwise 0

simlilarly when name_l4 is passed then hastranslation_4 becomes 1 otherwise 0


Example:


1)
If we pass name_l1 =ravi and name_l2,name_l3,name_l4 as null then others are also updated as name_l1,but hastranslation values for corresponding names become

1 if we pass the name values only.

Name_l1 Name_l2 Name_l3 Name_l4 Hastrans_l1 Hastrans_l2 Hastrans_l3 Hastrans_l4

ravi ravi ravi ravi 1 0 0 0


2)If we pass name_l1 as kiran, name_l2=raam ,name_l3 as firoz,name_l4 as rahim then it becomes

Name_l1 Name_l2 Name_l3 Name_l4 Hastrans_l1 Hastrans_l2 Hastrans_l3 Hastrans_l4

ravi ravi ravi ravi 1 0 0 0

kiran raam firoz rahim 1 1 1 1


3)Again when I enter name_l=raju ,name_l3=kiran it should take as follows



Name_l1 Name_l2 Name_l3 Name_l4 Hastrans_l1 Hastrans_l2 Hastrans_l3 Hastrans_l4

ravi ravi ravi ravi 1 0 0 0

kiran raam firoz rahim 1 1 1 1

raju raju kiran raju 1 0 1 0


But my code is not doing that .

It should check unique constraint on individual columns
Re: Check this code ! [message #193862 is a reply to message #193723] Tue, 19 September 2006 13:48 Go to previous messageGo to next message
kimant
Messages: 201
Registered: August 2006
Location: Denmark
Senior Member
That is lots of code Smile
Perhaps if You could narrow it down to something digestible, so we could look at the real issue?


"It should check unique constraint on individual columns"

Why not use a unique constraint, and let the database do this for You?

Br
Kim Anthonisen
Re: Check this code ! [message #193963 is a reply to message #193862] Wed, 20 September 2006 02:47 Go to previous messageGo to next message
guru_karnam
Messages: 142
Registered: May 2005
Senior Member

wHENVER U PASS NAME_n the corresponding Hastranslation_Ln becomes 1.
When u pass Name_1 and (Name_2,Name_3,Name_4) as null then name_1 will be copied to Name_2,Name_3,Name_4 and hastranslation_l1 will become 1 and others(hastranslation_l2,
hastranslation_l3,hastranslation_l4 becomes 0).

When u pass Name_1 and name_3 the corresponding hastranslation values hastranlation_l1 and hastranlation_l3 be

Whenver i delete a row from front end ,the record will be there in backend ,but isdeleted becomes 1 for that deleted record.

I should check the condition that whenever iam adding a new row
it should check if name_l1 existing with isdeleted=0 and hastranslation_1=0 ,if exists then it should not allow,if not it should add a record.

if editing the same record ,the values can be changed but be sure that it maintains unique key on name_ln and isdeleted=0 .


IF I EDIT,IT SHOULD UPDATE EXISTING RECORD.
IF I INSERT A NEW ONE ,IT SHOULD CHECK THE COUNT AND IF COUNT IS 0 THEN INSERT A NEW ONE WITH NEW BUNDLEID,

ELSE IF IAM INSERTING A NEW ONE AND COUNT>0 THEN
IT SHOULD RETURN ERROR.
Re: Check this code ! [message #193964 is a reply to message #193963] Wed, 20 September 2006 02:50 Go to previous messageGo to next message
guru_karnam
Messages: 142
Registered: May 2005
Senior Member
I should check the condition that whenever iam adding a new row
it should check if name_l1 existing with isdeleted=0 and hastranslation_1=1 ,if exists then it should not allow,if not it should add a record.

Sorry ,check this not 0.

Considering this tell me the changes in constraints of table and also my code

Re: Check this code ! [message #194401 is a reply to message #193964] Fri, 22 September 2006 00:20 Go to previous messageGo to next message
guru_karnam
Messages: 142
Registered: May 2005
Senior Member
I could get the logic as this.But I have a problem in uniq_exec

procedure createServBundle
(
i_ServiceBundle in out ServBundle
)
as

v_servBundle ServiceBundle%ROWTYPE ;
v_count integer := 0;
v_UniqueID integer := 0;
v_dispOrder number;
errMsg varchar2(250) := null;
v_isdeleted number;
unique_exec exception;
pretcode varchar2(200);
begin

select max(displayOrder) into v_disporder from servicebundle
where isdeleted=0;

v_disporder := nvl(v_dispOrder,0)+1;

select sum(cnt)
into v_count
from (select count(*) as cnt
from servicebundle
where Name_L1 = i_ServiceBundle.namel1
and isDeleted = 0
and hastranslation_l1 = 1
union
select count(*) as cnt
from servicebundle
where Name_L2 = i_ServiceBundle.namel2
and isDeleted = 0
and hastranslation_l2 = 1
union
select count(*) as cnt
from servicebundle
where Name_L3 = i_ServiceBundle.namel3
and isDeleted = 0
and hastranslation_l3 = 1
union
select count(*) as cnt
from servicebundle
where Name_L4 = i_ServiceBundle.namel4
and isDeleted = 0
and hastranslation_l4 = 1);



if(v_count = 0 ) then

Select EsgId_seq.nextval into v_uniqueID from dual;

Insert into ServiceBundle (
ServiceBundleID,
Displayorder,
Name_L1,
Name_L2,
Name_L3,
Name_L4,
Description_L1,
Description_l2,
Description_L3,
Description_l4,
SubscriptionStartDate,
SubscriptionEndDate,
AccountTypeEnum,
Accountlogin,
HasPreview,
HasTranslation_L1,
HasTranslation_L2,
HasTranslation_l3,
HasTranslation_L4,
isDeleted
)
values(
v_UniqueID,
v_dispOrder,
i_ServiceBundle.NameL1,
i_ServiceBundle.NameL2,
i_ServiceBundle.NameL3,
i_ServiceBundle.NameL4,
i_ServiceBundle.DescriptionL1,
i_ServiceBundle.DescriptionL2,
i_ServiceBundle.DescriptionL3,
i_ServiceBundle.DescriptionL4,
i_ServiceBundle.SubStartDate,
i_ServiceBundle.SubEndDate,
i_ServiceBundle.ACCOUNTTYPEENUM,
i_ServiceBundle.ACCOUNTLOGIN,
i_ServiceBundle.HASPREVIEW,
i_ServiceBundle.HasTransL1,
i_ServiceBundle.HasTransL2,
i_ServiceBundle.HasTransL3,
i_ServiceBundle.HasTransL4,
i_ServiceBundle.isDeleted
);
else

raise unique_exec;



end if;

Select * into v_servBundle from ServiceBundle
where ServiceBundleId = v_UniqueID;


i_ServiceBundle := ServBundle(v_servBundle.ServiceBundleId,
v_servBundle.Displayorder,
v_servBundle.Name_L1,
v_servBundle.Name_L2,
v_servBundle.Name_L3,
v_servBundle.Name_L4,
v_servBundle.Description_L1,
v_servBundle.Description_L2,
v_servBundle.Description_L3,
v_servBundle.Description_L4,
v_servBundle.SubscriptionStartDate,
v_servBundle.SubscriptionEndDate,
v_servBundle.Accounttypeenum,
v_servBundle.Accountlogin,
v_servBundle.Haspreview,
v_servBundle.HasTranslation_L1,
v_servBundle.HasTranslation_L2,
v_servBundle.HasTranslation_L3,
v_servBundle.HasTranslation_L4,
v_servBundle.isDeleted,
v_servBundle.ModifDate,
v_servBundle.ModifUser
);

exception

when unique_exec then

raise_application_error(-20004,'cannot insert duplicate records into language names');


return;

when others then

errMsg := substr(sqlerrm,1,200);
if(sqlcode < -20000 and sqlcode > -20999) then
raise_application_error(sqlcode, 'Create ServiceBundle : ' || errMsg);
else
raise_application_error(-20999, 'Create ServiceBundle : ' || errMsg, true);
end if;


end createServbundle;


Instead of raising a generic exception like this for all those four names
,i want to raise individual ones.


when unique_exec then

raise_application_error(-20004,'cannot insert duplicate records into language names');



















Re: Check this code ! [message #194469 is a reply to message #194401] Fri, 22 September 2006 05:42 Go to previous messageGo to next message
kimant
Messages: 201
Registered: August 2006
Location: Denmark
Senior Member
You could find inspiration here:

http://www.oracle.com/technology/oramag/oracle/03-may/o33plsql.html

or in the docs....

Br
Kim
Re: Check this code ! [message #194531 is a reply to message #193723] Fri, 22 September 2006 09:11 Go to previous messageGo to next message
guru_karnam
Messages: 142
Registered: May 2005
Senior Member
procedure createServBundle
(
i_ServiceBundle in out ServBundle
)
as

v_servBundle ServiceBundle%ROWTYPE ;
v_count integer := 0;
v_UniqueID integer := 0;
v_dispOrder number;
errMsg varchar2(250) := null;
v_isdeleted number;
e_unique_exec exception;
pretcode varchar2(200);

v_c1 integer := 0;
v_c2 integer := 0;
v_c3 integer := 0;
v_c4 integer := 0;
begin

select max(displayOrder) into v_disporder from servicebundle
where isdeleted=0;

v_disporder := nvl(v_dispOrder,0)+1;

select count(*)
into v_c1
from servicebundle
where Name_L1 = i_ServiceBundle.namel1
and isDeleted = 0
and hastranslation_l1 = 1;

select count(*)
into v_c2
from servicebundle
where Name_L2 = i_ServiceBundle.namel2
and isDeleted = 0
and hastranslation_l2 = 1;

select count(*)
into v_c3
from servicebundle
where Name_L3 = i_ServiceBundle.namel3
and isDeleted = 0
and hastranslation_l3 = 1;

select count(*)
into v_c4
from servicebundle
where Name_L4 = i_ServiceBundle.namel4
and isDeleted = 0
and hastranslation_l4 = 1;

select sum(v_c1 + v_c2 + v_c3 + v_c4) into v_count from dual;


if(v_count = 0 ) then

Select EsgId_seq.nextval into v_uniqueID from dual;

Insert into ServiceBundle (
ServiceBundleID,
Displayorder,
Name_L1,
Name_L2,
Name_L3,
Name_L4,
Description_L1,
Description_l2,
Description_L3,
Description_l4,
SubscriptionStartDate,
SubscriptionEndDate,
AccountTypeEnum,
Accountlogin,
HasPreview,
HasTranslation_L1,
HasTranslation_L2,
HasTranslation_l3,
HasTranslation_L4,
isDeleted
)
values(
v_UniqueID,
v_dispOrder,
i_ServiceBundle.NameL1,
i_ServiceBundle.NameL2,
i_ServiceBundle.NameL3,
i_ServiceBundle.NameL4,
i_ServiceBundle.DescriptionL1,
i_ServiceBundle.DescriptionL2,
i_ServiceBundle.DescriptionL3,
i_ServiceBundle.DescriptionL4,
i_ServiceBundle.SubStartDate,
i_ServiceBundle.SubEndDate,
i_ServiceBundle.ACCOUNTTYPEENUM,
i_ServiceBundle.ACCOUNTLOGIN,
i_ServiceBundle.HASPREVIEW,
i_ServiceBundle.HasTransL1,
i_ServiceBundle.HasTransL2,
i_ServiceBundle.HasTransL3,
i_ServiceBundle.HasTransL4,
i_ServiceBundle.isDeleted
);
else

raise e_unique_exec;



end if;

Select * into v_servBundle from ServiceBundle
where ServiceBundleId = v_UniqueID;


i_ServiceBundle := ServBundle(v_servBundle.ServiceBundleId,
v_servBundle.Displayorder,
v_servBundle.Name_L1,
v_servBundle.Name_L2,
v_servBundle.Name_L3,
v_servBundle.Name_L4,
v_servBundle.Description_L1,
v_servBundle.Description_L2,
v_servBundle.Description_L3,
v_servBundle.Description_L4,
v_servBundle.SubscriptionStartDate,
v_servBundle.SubscriptionEndDate,
v_servBundle.Accounttypeenum,
v_servBundle.Accountlogin,
v_servBundle.Haspreview,
v_servBundle.HasTranslation_L1,
v_servBundle.HasTranslation_L2,
v_servBundle.HasTranslation_L3,
v_servBundle.HasTranslation_L4,
v_servBundle.isDeleted,
v_servBundle.ModifDate,
v_servBundle.ModifUser
);

exception

when e_unique_exec then

if (v_c1>0 and v_c2=0 and v_c3=0 and v_c4=0) then

raise_application_error(-20752,'cannot insert duplicate records into name1');

elsif (v_c1=0 and v_c2>0 and v_c3=0 and v_c4=0) then

raise_application_error(-20752,'cannot insert duplicate records into name2');

elsif (v_c1=0 and v_c2=0 and v_c3>0 and v_c4=0) then

raise_application_error(-20752,'cannot insert duplicate records into name3');

elsif (v_c1=0 and v_c2=0 and v_c3=0 and v_c4>0) then

raise_application_error(-20752,'cannot insert duplicate records into name4');

elsif (v_c1>0 and v_c2>0 and v_c3=0 and v_c4=0) then

raise_application_error(-20752,'cannot insert duplicate records into name1 and name2');

elsif (v_c1>0 and v_c2=0 and v_c3>0 and v_c4=0) then

raise_application_error(-20752,'cannot insert duplicate records into name1 and name3');

elsif (v_c1>0 and v_c2=0 and v_c3=0 and v_c4>0) then

raise_application_error(-20752,'cannot insert duplicate records into name1 and name4');

elsif (v_c1=0 and v_c2>0 and v_c3>0 and v_c4=0) then

raise_application_error(-20752,'cannot insert duplicate records into name2 and name3');

elsif (v_c1=0 and v_c2>0 and v_c3=0 and v_c4>0) then

raise_application_error(-20752,'cannot insert duplicate records into name2 and name4');

elsif (v_c1=0 and v_c2=0 and v_c3>0 and v_c4>0) then

raise_application_error(-20752,'cannot insert duplicate records into name3 and name4');

elsif (v_c1>0 and v_c2>0 and v_c3>0 and v_c4>0) then

raise_application_error(-20752,'cannot insert duplicate records into name1,name2,name3 and name4');

elsif (v_c1>0 and v_c2>0 and v_c3>0 and v_c4=0) then

raise_application_error(-20752,'cannot insert duplicate records into name1,name2 and name3');

elsif (v_c1>0 and v_c2=0 and v_c3>0 and v_c4>0) then

raise_application_error(-20752,'cannot insert duplicate records into name1,name3 and name4');

elsif (v_c1>0 and v_c2>0 and v_c3=0 and v_c4>0) then

raise_application_error(-20752,'cannot insert duplicate records into name1,name2 and name4');

elsif (v_c1=0 and v_c2>0 and v_c3>0 and v_c4>0) then

raise_application_error(-20752,'cannot insert duplicate records into name2,name3 and name4');

return;

end if;
when others then

errMsg := substr(sqlerrm,1,200);
if(sqlcode < -20000 and sqlcode > -20999) then
raise_application_error(sqlcode, 'Create ServiceBundle : ' || errMsg);
else
raise_application_error(-20999, 'Create ServiceBundle : ' || errMsg, true);
end if;


end createServbundle;

how can i reduce the code in exception section?????


Re: Check this code ! [message #194533 is a reply to message #194531] Fri, 22 September 2006 09:19 Go to previous messageGo to next message
kimant
Messages: 201
Registered: August 2006
Location: Denmark
Senior Member
You really need to look into UNIQUE constraints.
- This is what they are for.

If Your table/datamodel cannot use those, You are in for trouble.
A lot of trouble.

Br
Kim
Re: Check this code ! [message #194915 is a reply to message #194533] Tue, 26 September 2006 02:51 Go to previous messageGo to next message
guru_karnam
Messages: 142
Registered: May 2005
Senior Member
No constraints on name_l1,name_l2,name_l3,name_l4.
Re: Check this code ! [message #194917 is a reply to message #194915] Tue, 26 September 2006 03:03 Go to previous message
kimant
Messages: 201
Registered: August 2006
Location: Denmark
Senior Member
Come on - I gave You a piece of advice!

Would You at least care to explain why You do not use them?

They are built in, they are designed data integrety, they are already there, they are FREE!

Previous Topic: build a sale project for a shop?
Next Topic: Inheritance!!!!!!
Goto Forum:
  


Current Time: Thu Dec 08 06:05:02 CST 2016

Total time taken to generate the page: 0.21871 seconds