Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Update conflicted
Message
 
To
15/11/2006 11:25:21
Arjun Bagojikop
Dynamic Super Software
Sangli, India
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Database:
MS SQL Server
Miscellaneous
Thread ID:
01169906
Message ID:
01169918
Views:
8
And ID is integer IDENTITY() field, right?
You must get back identity value immediately after you update record. you need to do this, because if you edit or delete newly added record, VFP is trying to use value currently in that field to change the remote table. BUT when you append new record in CA the ID is 0 and VFP is not able to found a record in remote table where Id=0. So thke a look in CA's
InsertCmdRefreshCmd, InsertCmdRefreshFieldList properties.
try:
   .InsertCmdRefreshCmd       = [SELECT @@IDENTITY]
   .InsertCmdRefreshFieldList = [Id]
BUT using @@IDENTITY could be dangerous. I can't make a CA to use SCOPE_IDENETITY() or IDENT_CURRENT() functions, so I prefer to use Stored procedures for insert records.



>hi All Friends
>Sorry for english
>
>i have created Cursoradapter in form procedure activate
>
>when i add new record in this cursoradapter cursoradapter was updated
>but when i edit this record error occured '
>"Microsft cursor engine row cannot be located for updating, some value may have changes since it was last read"
>
>and when i delete this record error occured '
>DELETE statement conflicted fk_whcompanydealer_whdealer
>here is no relation
>
>i see relationship between about now i have deleted all relationship
>but error was not cleared and automatically deleted relataed record from whcustomer
>i have very try but i am confuse so plesase tell where i am wronge
>
>loCommand = Createobject('ADODB.Command')
>loCommand.ActiveConnection = MYACCCONN
>WHDCHEAD = Createobject('CursorAdapter')
>llReturn = DoDefault()
>Set Multilocks On
>
>With WHDCHEAD
>.Alias = 'whdchead'
>.DataSourceType = 'ADO'
>
>TEXT TO .SELECTCMD NOSHOW
>select WHDCHEAD.BY_NAME, WHDCHEAD.CUSTOMER, WHDCHEAD.C_CODE, WHDCHEAD.DC_DT, WHDCHEAD.DC_NO, WHDCHEAD.DDE, WHDCHEAD.DE, WHDCHEAD.DELIVERY, WHDCHEAD.DESP_BY, WHDCHEAD.DEST_CODE, WHDCHEAD.DO_DT, WHDCHEAD.DO_NO, WHDCHEAD.D_CODE, WHDCHEAD.FREIGHT, WHDCHEAD.GP_DT, WHDCHEAD.GP_NO, WHDCHEAD.GRN_NO,WHDCHEAD.G_CODE, WHDCHEAD.ID, WHDCHEAD.INV_NO, WHDCHEAD.KMS, WHDCHEAD.ORDER_DATE, WHDCHEAD.ORDER_NO, WHDCHEAD.RR_NO, WHDCHEAD.S_CODE, WHDCHEAD.TRUCK_NO, WHDCHEAD.WGN_NO, WHDCHEAD.rail_rec_no,WHDEALER.NAME AS DEALER, WHDEALER.DSTN_CODE AS D_DSTN, WHSUBDEALER.SUBDEALER, WHSUBDEALER.DSTN_CODE AS S_DSTN
>from WHDCHEAD
>inner join WHDEALER on WHDCHEAD.D_CODE=WHDEALER.CODE
>inner join WHSUBDEALER on WHDCHEAD.S_CODE=WHSUBDEALER.CODE
>where whdchead.de=?wde and whdchead.c_code=?WCODE
>ENDTEXT
>
>TEXT TO .CURSORSCHEMA NOSHOW
>BY_NAME I, CUSTOMER C(50), C_CODE I, DC_DT D, DC_NO N, DDE I, DE C(15), DELIVERY I, DESP_BY I, DEST_CODE I, DO_DT D, DO_NO C(10), D_CODE I, FREIGHT N(14, 2), GP_DT D, GP_NO I, GRN_NO C(10), G_CODE I, ID I, INV_NO C(15), KMS N(14, 3), ORDER_DATE T, ORDER_NO C(15), RR_NO C(20), S_CODE I, TRUCK_NO C(50), WGN_NO C(15), RAIL_REC_NO C(15), DEALER C(100), D_DSTN I, SUBDEALER C(100), S_DSTN I
>ENDTEXT
>TEXT TO .UpdateNameList NOSHOW
>BY_NAME WHDCHEAD.BY_NAME, CUSTOMER WHDCHEAD.CUSTOMER, C_CODE WHDCHEAD.C_CODE,
>DC_DT WHDCHEAD.DC_DT, DC_NO WHDCHEAD.DC_NO, DDE WHDCHEAD.DDE, DE WHDCHEAD.DE,
>DELIVERY WHDCHEAD.DELIVERY, DESP_BY WHDCHEAD.DESP_BY, DEST_CODE WHDCHEAD.DEST_CODE,
>DO_DT WHDCHEAD.DO_DT, DO_NO WHDCHEAD.DO_NO, D_CODE WHDCHEAD.D_CODE, FREIGHT WHDCHEAD.FREIGHT,GP_DT WHDCHEAD.GP_DT, GP_NO WHDCHEAD.GP_NO, GRN_NO WHDCHEAD.GRN_NO, G_CODE WHDCHEAD.G_CODE,ID WHDCHEAD.ID, INV_NO WHDCHEAD.INV_NO, KMS WHDCHEAD.KMS, ORDER_DATE WHDCHEAD.ORDER_DATE, ORDER_NO WHDCHEAD.ORDER_NO, RR_NO WHDCHEAD.RR_NO, S_CODE WHDCHEAD.S_CODE,TRUCK_NO WHDCHEAD.TRUCK_NO, WGN_NO WHDCHEAD.WGN_NO, RAIL_REC_NO WHDCHEAD.RAIL_REC_NO
>ENDTEXT
>
>TEXT TO .UpdatableFieldList NOSHOW
>BY_NAME, CUSTOMER, C_CODE, DC_DT, DC_NO, DDE, DE, DELIVERY, DESP_BY, DEST_CODE,
>DO_DT, DO_NO, D_CODE, FREIGHT, GP_DT, GP_NO, GRN_NO, G_CODE, ID, INV_NO, KMS, ORDER_DATE, ORDER_NO, RR_NO, S_CODE, TRUCK_NO, WGN_NO, RAIL_REC_NO
>ENDTEXT
>.KeyFieldList='ID'
>.Datasource = Createobject('ADODB.Recordset')
>.Datasource.CursorLocation = 3 && adUseClient
>.Datasource.LockType = 3 && adLockOptimistic
>.Datasource.ActiveConnection = MYACCCONN
>.BufferModeOverride=5
>.UseCursorSchema=.T.
>.WhereType= 2
>llReturn = .CursorFill(.T., .F., 0, loCommand)
>
>endwith
>
>
>when i can get selectcmd without inner join all work is ok
Against Stupidity the Gods themselves Contend in Vain - Johann Christoph Friedrich von Schiller
The only thing normal about database guys is their tables.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform