過去6年間に実稼働されており、SQL MSDEおよびMS-SQL Server 2012に対して正常に機能しているPowerBuilderクライアントアプリケーション(PB 12.5)があります。ID値がSQL Serverによって返されない2014
最近、いくつかのインストール(約40件)をSQL Server 2014にアップグレードしました。これらのインストールの約半分で、更新メソッドが呼び出された後、ID列がではなくがデータウィンドウに返されるという問題がありました。
If lds_Update.Update() < 1 then
lb_Error = True
ls_Temp = "The inspection header could not be created."
Else
ll_InspID = lds_Update.GetItemNumber(1, "Insp_ID")
If (ll_InspID <= 0) or Isnull(ll_InspID) then
lb_Error = True // This is being hit as ll_InspID is null
ls_Temp = "Could not retrieve the inspection identity."
End If
End If
データウィンドウには、ID列と主キーの正しい設定があります。
これは、すべてのインストールで起こっだけいくつかされていません。すべてのインストールはほぼ同じです。 PBアプリケーションはサーバにインストールされ、シンクライアントから起動されます。次のように
接続文字列は次のとおりです。
SQLCA.DBParm = "PROVIDER='SQLOLEDB',DATASOURCE='ServerName',PROVIDERSTRING='Database=DBName',Identity='SCOPE_IDENTITY()'"
我々はまた、いくつかのテストインストールおよびSQL Server 2014のExpressのに対して試してみましたが、それは正常に動作します。これが失敗するのはいくつかのインストールでのみで、理由はわかりません。 Identity='@@IDENTITY'
に変更しようとしましたが、効果はありません。
誰にもアイデアはありますか?
それは場合に役立ちます、それを試してみてください:[OLE DB] のDBParm = "PROVIDER = 'SQLNCLI11'、DATASOURCE = 'サーバ'、ProviderString機能= 'データベース= DBNAME; APP = APPNAME'、OJSyntax = 'ANSI'、PBTrimCharColumns = 'はい'、DateTimeFormat = '\' 'yyyy-mm-dd hh:mm:ss.fff \' '、DateFormat =' \ '' yyyy-mm-dd \ '' '、TimeFormat =' \ '' hh:mm:ss \ '、Identity =' SCOPE_IDENTITY() '、DisableBind = 0 " –
これを試して元に戻します。 – navigator
残念ながら、それは助けになりませんでした:( – navigator