Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Algorithm for generating unique value for the 6 char fie
Message
 
 
To
04/05/2001 23:17:54
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00503649
Message ID:
00503864
Views:
33
John,

First of all, thanks for the code snippet.

Ok, so the first task in our class would be to determine, if the passed table has a PK (or candidate). Second, check, if this field (probably we'll not make logic complicated to check for compound PK) has a default value (assuming, that default value takes care of uniqueness). If not, somehow generate a PK (BTW, several tables have 1 or 2 char fields for their PK) and use insert command.

Ok, sounds doable, though not easy. I'll try to convince our team members to change our ADD method to use this logic. It's really hard, because our manager doesn't want any classes changes, even if they are for the best...


>Well...
>
>=oDBFDataServices.AddNew("mytable",oDBFDataServices.GenPK(1),"pk")
>
>*** In the class....
>PROCEDURE GenPK(nType)
>DO CASE
>CASE nType=1
>   cRetVal=SYS(2015)
>ENDCASE
>RETURN cRetVal
>
>PROCEDURE AddNew(cTable,cPK,cPKField)
>INSERT INTO (cTable) (&cPKField) VALUES (cPK)
>RETURN
>
>This is as simple as I can get. Actually, my methods are a bit more complex but this gives you the basic idea.
>
>
>
>
>
>>John,
>>
>>Do you have code universal enough for this kind of situations? Could you please show it?
>>
>>Thanks in advance.
>>
>>>Hi Nadya,
>>>
>>>I would rethink using APPEND BLANK in your framework if I were you. What I do is a method that accepts the table and primary key value and primary key field. Then I use INSERT INTO ... () VALUEs (). APPEND BLANK is going to cause problems, especially if the app comes down and a blank record gets left in the base table. Thereafter, the app will break the next time an APPEND BLANK is issued, as you are finding out.
>>>
>>>
>>>>>Yup. Generate the value and use INSERT INTO instead of APPEND BLANK. Create the PK value before the INSERT.
>>>>
>>>>Append blank is in our FrameWork :( I don't want to write special code for this particular form, though it seems like I must.
>>>>
>>>>>
>>>>>>Hi everybody,
>>>>>>
>>>>>>I have a table, there field Code (Character 6) is made PK. This table contains one blank record (this is by design). Now, each time I'm issuing append blank, I get an Error "Uniqueness of indexes is violated". I'm thinking about adding a default value for this field, but I don't want to use NextID table approach, because this database doen't have a NextID table and I don't want to change it.
>>>>>>Therefore I'm seeking for the idea of a function, which will generate Unique ID automatically (Char 6).
>>>>>>
>>>>>>Or may be you have other ideas? Simple way, which was suggested by my manager, just make this index to be regular and deal this checking on the form level. I disagree, because our data is not secure enough, so if somebody will edit this table directly, there is a chance for adding duplicates.
>>>>>>
>>>>>>What do you think? I know, it's not recommended to use character PK (meangful), but this table was designed long time ago and I don't want to change it.
>>>>>>
>>>>>>Thanks in advance.
If it's not broken, fix it until it is.


My Blog
Previous
Reply
Map
View

Click here to load this message in the networking platform