我正在使用PowerBuilder 12 Classic DataWindow將新記錄插入到具有標識列的SQL Server 2008數據庫表中。在插入之後,我想獲取用於其他表格的標識列的值。PowerBuilder:在插入到Sql Server表後獲取標識值
在我pbodb120.ini下[MS_SQLSERVER_SYNTAX]我已經改變了GetIndentity行這樣的:
GetIdentity='Select IDENT_CURRENT (''&TableName'')'
我的代碼看起來像這樣(文檔ID是標識列):
dw_document_add.update(true, true)
li_docid = dw_document_add.getitemnumber(dw_document_add.getrow(), "docid")
麻煩在於,似乎只有一半的時間返回身份。我認爲這可能是一個時間問題。 (記錄正在插入到數據庫中。)
有沒有什麼辦法可以確保每次都能獲得身份?
UPDATE
我已經添加標識=「@@ IDENTITY」我的連接字符串,它似乎是現在的工作。但我不確定是否需要在pbodbxxx.ini文件中。
我已經做到了。我將Identity列設置爲docid,但它仍然只在大約一半的時間內填充它。記錄總是進入數據庫,但是docid不會返回到datawindow列中。 – Slapout
觸發器正在執行的失敗情況的任何機會,將用於檢索值的變量廢除?我從來沒有與SQL Server 2008有任何問題,所以它可能值得尋找一些特定的環境。 – Terry
現在,我正在重讀的啞巴問題:您使用ODBC而不是本機驅動程序的任何特定原因?你是否有與本地驅動程序相同的問題? ODBC驅動程序可能是獲取身份值的方式;我有ODBC驅動程序做得更糟! – Terry