|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
The error happened after migrating from FB 2.1 to FB 3. Simple post to edit data in debug mode raises the exception: The error states: Exception class EFDDBEngineException with message [FireDAC][Phys][FB_30]-312 Exact update affected [0] rows, while [1] was requested. If I hit "Continue" button then another exception raises: The error states: Exception class EFDException with message [FireDAC][Phys][FB_30]-400 Update command updated [0] rows, instead of [1] record. Possible reasons: update does not have PK or row identifier, record has been changed/deleted by another user. The table has PK as company id, no null value, unique key, I used DB on my computer so nobody can use it. Without debugger no exception raised. Under FB 2.1 the same function executed OK. Data is not saved under debug! Under exe mode no exception raised but data not saved. This is really really BIG PROBLEM! I extracted tracing data from file below up to errors: ================================================== --- new start of FireDAC Trace --- 70877486142 15:30:33.779 -=#!!! FireDAC Tracer started !!!#=- 70877486275 15:30:33.779 >> StartTransaction [ConnectionDef="FB_GENESIS_LOCAL"] 70877486367 15:30:33.779 . isc_start_multiple [count=1, params="write,read_committed,rec_version,nowait"] 70877492877 15:30:33.781 << StartTransaction [ConnectionDef="FB_GENESIS_LOCAL"] 70877497615 15:30:33.782 >> TFDCustomCommand.Prepare [Command="SELECT A.*, A.RDB$DB_KEY AS FD__DB_KEY FROM COMPANY A "] 70877497649 15:30:33.782 . CreateCommand [ConnectionDef="FB_GENESIS_LOCAL"] 70877497835 15:30:33.782 . Preprocessed [CMD="SELECT A.*, A.RDB$DB_KEY AS FD__DB_KEY FROM COMPANY A ", FROM="COMPANY", VP=0, VPE=0, OBP=0, CK=1] 70877497871 15:30:33.782 << TFDCustomCommand.Prepare [Command="SELECT A.*, A.RDB$DB_KEY AS FD__DB_KEY FROM COMPANY A "] 70877502855 15:30:33.784 >> Process [LimitToTable="COMPANY"] 70877502895 15:30:33.784 >> Lock [ARow.Table.Name="COMPANY"] 70877502918 15:30:33.784 << Lock [ARow.Table.Name="COMPANY"] 70877502945 15:30:33.784 >> Update [ARow.Table.Name="COMPANY"] 70877502996 15:30:33.784 . CreateCommand [ConnectionDef="FB_GENESIS_LOCAL"] 70877504605 15:30:33.784 . Preprocessed [CMD="UPDATE COMPANY SET STREET_1 = ? WHERE CUST_NO = ? AND COMPANY_NAME = ? AND CONTACT_FIRST IS NULL AND CONTACT_SECOND IS NULL AND PHONE_NO IS NULL AND STREET_1 = ? AND STREET_2 IS NULL AND CITY IS NULL AND STATE_PROVINCE IS NULL AND COUNTRY = ? AND POSTAL_CODE IS NULL AND FAX_NO IS NULL AND STREET_3 IS NULL AND E_MAIL IS NULL AND CUST_TYPE = ? AND BUS_TYPE IS NULL AND LAST_ORDER_DAY IS NULL AND THIS_YEAR_SALES IS NULL AND LAST_YEAR_SALES IS NULL AND YEAR_BEFORE_LAST_SALES IS NULL AND REMARKS IS NULL AND LABEL IS NULL AND PERCENT_DISCOUNT IS NULL AND CREDIT_APPROVED = ? AND REP IS NULL AND CREDIT_PROBLEMS = ? AND DAY_START = ? AND CATEGORY = ? AND BILL_COMPANY_NAME IS NULL AND BILL_STREET_1 IS NULL AND BILL_STREET_2 IS NULL AND BILL_STREET_3 IS NULL AND BILL_CITY IS NULL AND BILL_STATE_PROVINCE IS NULL AND BILL_POSTAL_CODE IS NULL AND BILL_COUNTRY IS NULL AND BILL_PHONE_NO IS NULL AND BILL_FAX_NO IS NULL AND BILL_CONTACT_FIRST IS NULL AND BILL_CONTACT_SECOND IS NULL AND CUST_ACTIVE = ? AND USE_MAIN4BILL = ? AND REP_CREDIT = ? AND INDUSTRY IS NULL AND SHIP_TYPE = ? AND SHIP_NUMBER IS NULL AND SR_NO = ? AND CREDIT_LINE IS NULL AND RDB$DB_KEY = ?", FROM="", VP=0, VPE=0, OBP=0, CK=7] 70877504648 15:30:33.784 >> ProcessRequest [ARow.Table.Name="COMPANY"] 70877504786 15:30:33.784 >> Prepare [Command="UPDATE COMPANY SET STREET_1 = :NEW_STREET_1 WHERE CUST_NO = :OLD_CUST_NO AND COMPANY_NAME = :OLD_COMPANY_NAME AND CONTACT_FIRST IS NULL AND CONTACT_SECOND IS NULL AND PHONE_NO IS NULL AND STREET_1 = :OLD_STREET_1 AND STREET_2 IS NULL AND CITY IS NULL AND STATE_PROVINCE IS NULL AND COUNTRY = :OLD_COUNTRY AND POSTAL_CODE IS NULL AND FAX_NO IS NULL AND STREET_3 IS NULL AND E_MAIL IS NULL AND CUST_TYPE = :OLD_CUST_TYPE AND BUS_TYPE IS NULL AND LAST_ORDER_DAY IS NULL AND THIS_YEAR_SALES IS NULL AND LAST_YEAR_SALES IS NULL AND YEAR_BEFORE_LAST_SALES IS NULL AND REMARKS IS NULL AND LABEL IS NULL AND PERCENT_DISCOUNT IS NULL AND CREDIT_APPROVED = :OLD_CREDIT_APPROVED AND REP IS NULL AND CREDIT_PROBLEMS = :OLD_CREDIT_PROBLEMS AND DAY_START = :OLD_DAY_START AND CATEGORY = :OLD_CATEGORY AND BILL_COMPANY_NAME IS NULL AND BILL_STREET_1 IS NULL AND BILL_STREET_2 IS NULL AND BILL_STREET_3 IS NULL AND BILL_CITY IS NULL AND BILL_STATE_PROVINCE IS NULL AND BILL_POSTAL_CODE IS NULL AND BILL_COUNTRY IS NULL AND BILL_PHONE_NO IS NULL AND BILL_FAX_NO IS NULL AND BILL_CONTACT_FIRST IS NULL AND BILL_CONTACT_SECOND IS NULL AND CUST_ACTIVE = :OLD_CUST_ACTIVE AND USE_MAIN4BILL = :OLD_USE_MAIN4BILL AND REP_CREDIT = :OLD_REP_CREDIT AND INDUSTRY IS NULL AND SHIP_TYPE = :OLD_SHIP_TYPE AND SHIP_NUMBER IS NULL AND SR_NO = :OLD_SR_NO AND CREDIT_LINE IS NULL AND RDB$DB_KEY = :OLD_DB_KEY"] 70877505037 15:30:33.784 . Preprocessed [CMD="UPDATE COMPANY SET STREET_1 = ? WHERE CUST_NO = ? AND COMPANY_NAME = ? AND CONTACT_FIRST IS NULL AND CONTACT_SECOND IS NULL AND PHONE_NO IS NULL AND STREET_1 = ? AND STREET_2 IS NULL AND CITY IS NULL AND STATE_PROVINCE IS NULL AND COUNTRY = ? AND POSTAL_CODE IS NULL AND FAX_NO IS NULL AND STREET_3 IS NULL AND E_MAIL IS NULL AND CUST_TYPE = ? AND BUS_TYPE IS NULL AND LAST_ORDER_DAY IS NULL AND THIS_YEAR_SALES IS NULL AND LAST_YEAR_SALES IS NULL AND YEAR_BEFORE_LAST_SALES IS NULL AND REMARKS IS NULL AND LABEL IS NULL AND PERCENT_DISCOUNT IS NULL AND CREDIT_APPROVED = ? AND REP IS NULL AND CREDIT_PROBLEMS = ? AND DAY_START = ? AND CATEGORY = ? AND BILL_COMPANY_NAME IS NULL AND BILL_STREET_1 IS NULL AND BILL_STREET_2 IS NULL AND BILL_STREET_3 IS NULL AND BILL_CITY IS NULL AND BILL_STATE_PROVINCE IS NULL AND BILL_POSTAL_CODE IS NULL AND BILL_COUNTRY IS NULL AND BILL_PHONE_NO IS NULL AND BILL_FAX_NO IS NULL AND BILL_CONTACT_FIRST IS NULL AND BILL_CONTACT_SECOND IS NULL AND CUST_ACTIVE = ? AND USE_MAIN4BILL = ? AND REP_CREDIT = ? AND INDUSTRY IS NULL AND SHIP_TYPE = ? AND SHIP_NUMBER IS NULL AND SR_NO = ? AND CREDIT_LINE IS NULL AND RDB$DB_KEY = ?", FROM="", VP=0, VPE=0, OBP=0, CK=7] 70877505076 15:30:33.784 . isc_dsql_allocate_statement [db_handle=$00000001] 70877505123 15:30:33.784 . isc_dsql_prepare [tra_handle=$0000003B, stmt_handle=$0000004F, sql="UPDATE COMPANY SET STREET_1 = ? WHERE CUST_NO = ? AND COMPANY_NAME = ? AND CONTACT_FIRST IS NULL AND CONTACT_SECOND IS NULL AND PHONE_NO IS NULL AND STREET_1 = ? AND STREET_2 IS NULL AND CITY IS NULL AND STATE_PROVINCE IS NULL AND COUNTRY = ? AND POSTAL_CODE IS NULL AND FAX_NO IS NULL AND STREET_3 IS NULL AND E_MAIL IS NULL AND CUST_TYPE = ? AND BUS_TYPE IS NULL AND LAST_ORDER_DAY IS NULL AND THIS_YEAR_SALES IS NULL AND LAST_YEAR_SALES IS NULL AND YEAR_BEFORE_LAST_SALES IS NULL AND REMARKS IS NULL AND LABEL IS NULL AND PERCENT_DISCOUNT IS NULL AND CREDIT_APPROVED = ? AND REP IS NULL AND CREDIT_PROBLEMS = ? AND DAY_START = ? AND CATEGORY = ? AND BILL_COMPANY_NAME IS NULL AND BILL_STREET_1 IS NULL AND BILL_STREET_2 IS NULL AND BILL_STREET_3 IS NULL AND BILL_CITY IS NULL AND BILL_STATE_PROVINCE IS NULL AND BILL_POSTAL_CODE IS NULL AND BILL_COUNTRY IS NULL AND BILL_PHONE_NO IS NULL AND BILL_FAX_NO IS NULL AND BILL_CONTACT_FIRST IS NULL AND BILL_CONTACT_SECOND IS NULL AND CUST_ACTIVE = ? AND USE_MAIN4BILL = ? AND REP_CREDIT = ? AND INDUSTRY IS NULL AND SHIP_TYPE = ? AND SHIP_NUMBER IS NULL AND SR_NO = ? AND CREDIT_LINE IS NULL AND RDB$DB_KEY = ?", dialect=3] 70877507063 15:30:33.785 . isc_dsql_sql_info [stmt_handle=$0000004F, info=21] 70877507094 15:30:33.785 . isc_dsql_describe_bind [stmt_handle=$0000004F, dialect=3] 70877507153 15:30:33.785 . isc_dsql_describe_bind [stmt_handle=$0000004F, dialect=3] 70877507305 15:30:33.785 << Prepare [Command="UPDATE COMPANY SET STREET_1 = :NEW_STREET_1 WHERE CUST_NO = :OLD_CUST_NO AND COMPANY_NAME = :OLD_COMPANY_NAME AND CONTACT_FIRST IS NULL AND CONTACT_SECOND IS NULL AND PHONE_NO IS NULL AND STREET_1 = :OLD_STREET_1 AND STREET_2 IS NULL AND CITY IS NULL AND STATE_PROVINCE IS NULL AND COUNTRY = :OLD_COUNTRY AND POSTAL_CODE IS NULL AND FAX_NO IS NULL AND STREET_3 IS NULL AND E_MAIL IS NULL AND CUST_TYPE = :OLD_CUST_TYPE AND BUS_TYPE IS NULL AND LAST_ORDER_DAY IS NULL AND THIS_YEAR_SALES IS NULL AND LAST_YEAR_SALES IS NULL AND YEAR_BEFORE_LAST_SALES IS NULL AND REMARKS IS NULL AND LABEL IS NULL AND PERCENT_DISCOUNT IS NULL AND CREDIT_APPROVED = :OLD_CREDIT_APPROVED AND REP IS NULL AND CREDIT_PROBLEMS = :OLD_CREDIT_PROBLEMS AND DAY_START = :OLD_DAY_START AND CATEGORY = :OLD_CATEGORY AND BILL_COMPANY_NAME IS NULL AND BILL_STREET_1 IS NULL AND BILL_STREET_2 IS NULL AND BILL_STREET_3 IS NULL AND BILL_CITY IS NULL AND BILL_STATE_PROVINCE IS NULL AND BILL_POSTAL_CODE IS NULL AND BILL_COUNTRY IS NULL AND BILL_PHONE_NO IS NULL AND BILL_FAX_NO IS NULL AND BILL_CONTACT_FIRST IS NULL AND BILL_CONTACT_SECOND IS NULL AND CUST_ACTIVE = :OLD_CUST_ACTIVE AND USE_MAIN4BILL = :OLD_USE_MAIN4BILL AND REP_CREDIT = :OLD_REP_CREDIT AND INDUSTRY IS NULL AND SHIP_TYPE = :OLD_SHIP_TYPE AND SHIP_NUMBER IS NULL AND SR_NO = :OLD_SR_NO AND CREDIT_LINE IS NULL AND RDB$DB_KEY = :OLD_DB_KEY"] 70877507383 15:30:33.785 >> Execute [Command="UPDATE COMPANY SET STREET_1 = :NEW_STREET_1 WHERE CUST_NO = :OLD_CUST_NO AND COMPANY_NAME = :OLD_COMPANY_NAME AND CONTACT_FIRST IS NULL AND CONTACT_SECOND IS NULL AND PHONE_NO IS NULL AND STREET_1 = :OLD_STREET_1 AND STREET_2 IS NULL AND CITY IS NULL AND STATE_PROVINCE IS NULL AND COUNTRY = :OLD_COUNTRY AND POSTAL_CODE IS NULL AND FAX_NO IS NULL AND STREET_3 IS NULL AND E_MAIL IS NULL AND CUST_TYPE = :OLD_CUST_TYPE AND BUS_TYPE IS NULL AND LAST_ORDER_DAY IS NULL AND THIS_YEAR_SALES IS NULL AND LAST_YEAR_SALES IS NULL AND YEAR_BEFORE_LAST_SALES IS NULL AND REMARKS IS NULL AND LABEL IS NULL AND PERCENT_DISCOUNT IS NULL AND CREDIT_APPROVED = :OLD_CREDIT_APPROVED AND REP IS NULL AND CREDIT_PROBLEMS = :OLD_CREDIT_PROBLEMS AND DAY_START = :OLD_DAY_START AND CATEGORY = :OLD_CATEGORY AND BILL_COMPANY_NAME IS NULL AND BILL_STREET_1 IS NULL AND BILL_STREET_2 IS NULL AND BILL_STREET_3 IS NULL AND BILL_CITY IS NULL AND BILL_STATE_PROVINCE IS NULL AND BILL_POSTAL_CODE IS NULL AND BILL_COUNTRY IS NULL AND BILL_PHONE_NO IS NULL AND BILL_FAX_NO IS NULL AND BILL_CONTACT_FIRST IS NULL AND BILL_CONTACT_SECOND IS NULL AND CUST_ACTIVE = :OLD_CUST_ACTIVE AND USE_MAIN4BILL = :OLD_USE_MAIN4BILL AND REP_CREDIT = :OLD_REP_CREDIT AND INDUSTRY IS NULL AND SHIP_TYPE = :OLD_SHIP_TYPE AND SHIP_NUMBER IS NULL AND SR_NO = :OLD_SR_NO AND CREDIT_LINE IS NULL AND RDB$DB_KEY = :OLD_DB_KEY", ATimes=0, AOffset=0] 70877507468 15:30:33.785 >> Sent 70877507514 15:30:33.785 . Var [N=0, Name="NEW_STREET_1", Type=SQL_VARYING, Prec=0, Scale=0, Size=30, Data(0)='123 TEST STREET'] 70877507540 15:30:33.785 . Var [N=1, Name="OLD_CUST_NO", Type=SQL_LONG, Prec=0, Scale=0, Size=4, Data(0)=24580] 70877507577 15:30:33.785 . Var [N=2, Name="OLD_COMPANY_NAME", Type=SQL_VARYING, Prec=0, Scale=0, Size=45, Data(0)='TEST'] 70877507614 15:30:33.785 . Var [N=3, Name="OLD_STREET_1", Type=SQL_VARYING, Prec=0, Scale=0, Size=30, Data(0)='123'] 70877507650 15:30:33.785 . Var [N=4, Name="OLD_COUNTRY", Type=SQL_VARYING, Prec=0, Scale=0, Size=15, Data(0)='USA'] 70877507687 15:30:33.785 . Var [N=5, Name="OLD_CUST_TYPE", Type=SQL_VARYING, Prec=0, Scale=0, Size=10, Data(0)='REGULAR'] 70877507724 15:30:33.785 . Var [N=6, Name="OLD_CREDIT_APPROVED", Type=SQL_VARYING, Prec=0, Scale=0, Size=3, Data(0)='NO'] 70877507755 15:30:33.785 . Var [N=7, Name="OLD_CREDIT_PROBLEMS", Type=SQL_VARYING, Prec=0, Scale=0, Size=3, Data(0)='NO'] 70877507800 15:30:33.785 . Var [N=8, Name="OLD_DAY_START", Type=SQL_TIMESTAMP, Prec=0, Scale=0, Size=8, Data(0)=7/17/2017] 70877507827 15:30:33.785 . Var [N=9, Name="OLD_CATEGORY", Type=SQL_LONG, Prec=0, Scale=0, Size=4, Data(0)=1] 70877507865 15:30:33.785 . Var [N=10, Name="OLD_CUST_ACTIVE", Type=SQL_TEXT, Prec=0, Scale=0, Size=1, Data(0)='Y'] 70877507895 15:30:33.785 . Var [N=11, Name="OLD_USE_MAIN4BILL", Type=SQL_TEXT, Prec=0, Scale=0, Size=1, Data(0)='Y'] 70877507931 15:30:33.785 . Var [N=12, Name="OLD_REP_CREDIT", Type=SQL_TEXT, Prec=0, Scale=0, Size=1, Data(0)='N'] 70877507966 15:30:33.785 . Var [N=13, Name="OLD_SHIP_TYPE", Type=SQL_TEXT, Prec=0, Scale=0, Size=1, Data(0)='C'] 70877508002 15:30:33.785 . Var [N=14, Name="OLD_SR_NO", Type=SQL_LONG, Prec=0, Scale=0, Size=4, Data(0)=0] 70877508037 15:30:33.785 . Var [N=15, Name="OLD_DB_KEY", Type=SQL_TEXT, Prec=0, Scale=0, Size=8, Data(0)='« ''] 70877508057 15:30:33.785 << Sent 70877508071 15:30:33.785 . isc_dsql_execute2 [tra_handle=$0000003B, stmt_handle=$0000004F, dialect=3] 70877508249 15:30:33.785 . isc_dsql_sql_info [stmt_handle=$0000004F, info=23] 70877675160 15:30:33.836 . Array DML failed: [FireDAC][Phys][FB_V30]-312. Exact update affected [0] rows, while [1] was requested 70877675273 15:30:33.836 << Execute [Command="UPDATE COMPANY SET STREET_1 = :NEW_STREET_1 WHERE CUST_NO = :OLD_CUST_NO AND COMPANY_NAME = :OLD_COMPANY_NAME AND CONTACT_FIRST IS NULL AND CONTACT_SECOND IS NULL AND PHONE_NO IS NULL AND STREET_1 = :OLD_STREET_1 AND STREET_2 IS NULL AND CITY IS NULL AND STATE_PROVINCE IS NULL AND COUNTRY = :OLD_COUNTRY AND POSTAL_CODE IS NULL AND FAX_NO IS NULL AND STREET_3 IS NULL AND E_MAIL IS NULL AND CUST_TYPE = :OLD_CUST_TYPE AND BUS_TYPE IS NULL AND LAST_ORDER_DAY IS NULL AND THIS_YEAR_SALES IS NULL AND LAST_YEAR_SALES IS NULL AND YEAR_BEFORE_LAST_SALES IS NULL AND REMARKS IS NULL AND LABEL IS NULL AND PERCENT_DISCOUNT IS NULL AND CREDIT_APPROVED = :OLD_CREDIT_APPROVED AND REP IS NULL AND CREDIT_PROBLEMS = :OLD_CREDIT_PROBLEMS AND DAY_START = :OLD_DAY_START AND CATEGORY = :OLD_CATEGORY AND BILL_COMPANY_NAME IS NULL AND BILL_STREET_1 IS NULL AND BILL_STREET_2 IS NULL AND BILL_STREET_3 IS NULL AND BILL_CITY IS NULL AND BILL_STATE_PROVINCE IS NULL AND BILL_POSTAL_CODE IS NULL AND BILL_COUNTRY IS NULL AND BILL_PHONE_NO IS NULL AND BILL_FAX_NO IS NULL AND BILL_CONTACT_FIRST IS NULL AND BILL_CONTACT_SECOND IS NULL AND CUST_ACTIVE = :OLD_CUST_ACTIVE AND USE_MAIN4BILL = :OLD_USE_MAIN4BILL AND REP_CREDIT = :OLD_REP_CREDIT AND INDUSTRY IS NULL AND SHIP_TYPE = :OLD_SHIP_TYPE AND SHIP_NUMBER IS NULL AND SR_NO = :OLD_SR_NO AND CREDIT_LINE IS NULL AND RDB$DB_KEY = :OLD_DB_KEY", ATimes=1, AOffset=0, RowsAffected=0, RowsAffectedReal=True, ErrorAction=0] 70877675542 15:30:33.836 . [FireDAC][DApt]-400. Update command updated [0] instead of [1] record. Possible reasons: update table does not have PK or row identifier, record has been changed/deleted by another user ================================================== ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2017, 01:34 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
The updating condition after WHERE is very difficult. I think, this difficult condition is false because some of its parts are false. I cannot understand, is this query used when you try to edit one record in editing window of client program? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2017, 07:12 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
Да ясен пень у него запрос какой-то автосгенерённый. P.S. FredFF, try to change your where clause to WHERE company_id = :OLD_company_id and check what will happen. P.P.S. This is not FB-side problem, this is client-side (Delphi, FireDAC etc) problem. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2017, 16:41 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, I am using Delphi components to post changed data to Address1 field of COMPANY table. It was working under Firebird 2.1 but the same code raises exception in debug mode (no debug mode - no exception) but in both cases under Firebird 3 data is not saved, so I decided to trace the issue with FireDAC monitoring controls which creates FlatFile which data I posted. All that queries are auto-generated by Firebird - on my site I only run save command for COMPANY table with CachedUpdates property ON: procedure TFormMenu.SaveUpdatesTo(MyTable : TFDTable); begin with MyTable do if not DM.Genesis.InTransaction then begin DM.Genesis.StartTransaction; try ApplyUpdates; {try to write the updates to the database} DM.Genesis.Commit; {on success, commit the changes} except DM.Genesis.Rollback; {on failure, undo the changes} raise; {raise the exception to prevent a call to CommitUpdates!} end; CommitUpdates; {on success, clear the cache} end else ApplyUpdates; end; Under FB 2.1 Dialect 1 changes are saved, under FB 3.0 Dialect 3 - not. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2017, 18:13 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
FredFFUnder FB 2.1 Dialect 1 changes are saved, under FB 3.0 Dialect 3 - not. There is nothing to wonder at with such ridiculous update query and DATE/TIMESTAMP filed mismatch. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2017, 18:24 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
FredFF> All that queries are auto-generated by Firebird Firebird doesn't "auto-generate" any queries at all. :) It is FireDAC's auto-generated queries. Try to set UpdateOptions.KeyFields property manually (to your PK) and check. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2017, 18:33 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, I added manually CUST_NO as PK to KeyFields - still raises errors. No difference ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2017, 19:10 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
FredFFNo difference Rent a programmer. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2017, 19:15 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, It's not clear what do you mean issue with TIMESTAMP? DAY_START was type DATE for Dialect 1 and it's converted to TIMESTAMP for Dialect 3. How it affects transaction to fail? Data value is proper for DAY_START -> '7/17/2017' ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2017, 19:23 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
Любезный, I used a program to save update to one record which failed. I try to trace the issue and got flatfile with values that I extracted. The query generated by FireDAC - not a program. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2017, 19:28 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
FredFF> I added manually CUST_NO as PK FredFF> to KeyFields - still raises errors. No difference You've said that "company id" is PK, not CUST_NO... Make sure UpdateMode=upWhereKeyOnly and show new trace-file. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2017, 20:30 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
авторI used a program to save update to one record which failed. I try to trace the issue and got flatfile with values that I extracted. The query generated by FireDAC - not a program. I don't work with FireDAC. But I see that query automatic generation is very bad. To update one record, it's more right to use query with onest condition - the primary key value. I don't know about presenting a feature to execute simple query in FireDAC, such as TIBSQL component in InterBase Express component set. If similar component is presents in FireDAC, I recommend you to use it with manual query writing. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2017, 21:38 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, Thanks but it's not enough. I solved this issue in two steps (both required): 1) Change UpdateOptions.UpdateMode to upWhereKeyOnly 2) Remove all fields and add them back along with events Any better way? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2017, 22:50 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
FredFF> Thanks but it's not enough. What "it"? :) I told you set UpdateMode and KeyFields earlier :) > 0) I solved this issue in two steps (both required): > 1) Change UpdateOptions.UpdateMode to upWhereKeyOnly > 2) Remove all fields and add them back along with events 0) Not exactly required. There are other ways. 1) AFAIK, it is default value. Did someone change it not realizing what he was doing? :) 2) AFAIU, it just sets "PK" flag for the field. Don't know why it wasn't set before though - may be you've changed it manually... > Any better way? If it works - don't change anything, let it be. :) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2017, 00:03 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
FredFFUnder FB 2.1 Dialect 1 changes are saved, under FB 3.0 Dialect 3 - not. so you have two possible factors, FB version and SQL Dialect "divide et empera", eliminate one factor and try it with FB2.1 and Dialect 3 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2017, 19:58 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
Ты бы ещё через неделю с этой глупостью опомнился. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2017, 20:29 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, Unfortunately it's not universal solution. I cannot create new record or update old one if my table has no PK and only unique index with two fields like QUOTE_NO (Integer) and REV_NO (Varchar(1) ). What should I do resolve this issue? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 20:41 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
FredFF> if my table has no PK <skipped> FredFF> What should I do resolve this issue? If your table has no PK - you should create it. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 20:51 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, Thanks, but I think it's not right to force FB3's end-user to make PK if it was not required for FB 2.1. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2017, 02:36 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
FredFFГаджимурадов Рустам, Thanks, but I think it's not right to force FB3's end-user to make PK if it was not required for FB 2.1. Table without PK is nonsence. PK is the only way to exactly define record. Unique key and unique index have the only one contrast - they allows NULLs. PK can be multy-segment the same way as Unique. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2017, 03:05 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
You've asked sollution - I've suggested the best one. And it's not "required", it's just general advice for any RDBMS. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2017, 03:13 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
Ну ты ему щас наподсказываешь про multy-segment-то. Он возьмёт и зафигачит поверх своих UK такой же PK. Проще уж тогда тупо на клиенте пропертю обмануть. Но это напоследок подскажем, если он по русски не бачит. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2017, 03:18 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамНу ты ему щас наподсказываешь про multy-segment-то. Он возьмёт и зафигачит поверх своих UK такой же PK. Проще уж тогда тупо на клиенте пропертю обмануть. Но это напоследок подскажем, если он по русски не бачит. Ну а чё, у меня в подсистеме взаимодействия с таможней и пятисегментные PK были Она умеет столько гитик, не меньше науки ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2017, 03:22 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
Злой ты, хочешь буржуя на неправильную дорогу направить. :) И вообще, полчетвертого утра, спать ложись давай, тебе завтра утром на работу не вставать. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2017, 03:33 |
|
Simple post raises error codes -312/-400 using Firebird 3.0
|
|||
---|---|---|---|
#18+
Старый плюшевый мишкаTable without PK is nonsence. PK is the only way to exactly define record PK is the only sure way to identify specific row ACROSS SESSIONS, in persistent mode However for short sessions RDB$DB_KEY might be enough, if to account for its quirks and limitations. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2017, 11:45 |
|
|
start [/forum/topic.php?fid=40&msg=39495671&tid=1561480]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 168ms |
0 / 0 |