Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Run Time Primaey index corrupts.
Message
From
30/11/2002 07:59:49
 
 
To
30/11/2002 07:19:55
James Hill
Jim Hill Productions
Halifax, Nova Scotia, Canada
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Miscellaneous
Thread ID:
00728134
Message ID:
00728340
Views:
21
So what IS the error message - #1567 or something else?????

You say it runs as an EXE but not using 'runtime'. Is it using the exact same data in both cases or do you have a different set of tables for each case?

I don't see in the code the check for the amount being <= the existing amount. Are you sure this is the full code?

Is it possible that a table name involved does NOT begin with a legal character value for an alias (like a number)???

good luck



>Hi Garrett. When I try to do an update in the 'Runtime' version I get a message the primary key has been corrupted, and I am given the opportunity to revert the entry. When I do the same thing using the executable for the program (not the runtime) it works flawlessly. I am at a loss. I am taking the liberty of including the code I am using. It is an extract from a reply I made to Tom O'Hare of VFUG, who took me to task for several of my bad habits....
>Tom, to clarify what I am doing :
>
>The work area is the _screen.activeform. primarytable which is the Alias() in question.
>
>oApp.incrid() automatically increases the vaue of the primary key for the alias in question every time an entry is made.
>It is a 'One size fits all' situation that I use on ALL my tables and primary keys. It works well, and it saves a lot of coding.
>As for 'm' in front for the variables...old bad habit I guess. No excuse. I cannot think at this time why I made the variables Public, they don't have to be. I will take your observation to heart and try to do better.
>
>When an update is being made..a check to see if the amount of the new bid is not <= to the exisiting amount. A further check verifies if there is an existing primary key. (The user is unable to ADD a new entry, and thus create a primary key) The record is marked for 'Deletion and a 'set carry' is put on the item number and the item. The new primary key, data etc..is inserted into the table. If all is well, the record is saved and we move on. It is really simple and it works as an executable but NOT in the runtime version. There, as old William would say, lies the rub.
>
>LOCAL m.lcOriWA
>m.lcOriWA = _SCREEN.ACTIVEFORM.primarytable
>SELECT &lcOriWA
>LOCAL lcNaTable, lcNaCurKey, lcNewKey
>PUBLIC nAmount, cName, cCode, cPhone
>m.lcNaTable = ALIAS()
>m.lcNaCurKey = "cID" + left(alias(), 4)
>m.lcNewKey = oApp.incrid( m.lcNaCurKey )
>m.nAmount = (auction.nAmount)
>m.cName = (auction.cName)
>m.cCode = (auction.cCode)
>m.cPhone = (auction.cPhone)
>IF !EMPTY( m.lcNewKey )
> DELETE
>  SET CARRY TO nitem_num, citem
>  INSERT INTO &lcNaTable (&lcNaCurKey,nitem_num,citem,nAmount, ctime) ;
                         VALUES (m.lcNewKey,nitem_num,citem,nAmount, TIME())
>  =TABLEUPDATE(.T.)
> _SCREEN.ACTIVEFORM.REFRESH()
>ELSE
> =MESSAGEBOX("Record not added")
>ENDIF
>THISFORM.pgf2base1.page1.txtnBid.SETFOCUS
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform