我想將日期發佈到SQL Server 2008 R2數據庫中的dateTime列,但我遇到了很多問題,我不知道是什麼原因。Delphi更新SQL Server 2008 R2中的DateTime列
首先,我使用這段代碼,但我得到了錯誤:無法將字符串轉換爲日期。
ADOOF.SQL.Text:='UPDATE OFTab SET CA='''+ CA.Text + ''', demandeClient=''' + DateTimeToStr(demandeClient.DateTime) + ''' WHERE ID='''+ ADOOF.FieldByName('ID') + '''';
ADOOF.ExecSQL;
第二,我已經使用參數:
ADOOF.SQL.Text:='UPDATE OFTab SET CA='''+ CA.Text + ''', demandeClient=:demande_client WHERE ID='''+ ADOOF.FieldByName('ID') + '''';
ADOOF.Parameters.ParamByName('demande_client').Value:= demandeClient.Date;
ADOOF.ExecSQL;
但我得到的錯誤:參數(demande_client)未找到。
我用Google搜索這個問題,我發現了一個建議,由Embarcadero公司說,該參數應用前人的精力調用ADOQuery這樣之前創建:
ADOOF.SQL.Text:='UPDATE OFTab SET CA='''+ CA.Text + ''', demandeClient=:demande_client WHERE ID='''+ ADOOF.FieldByName('ID') + '''';
ADOOF.Parameters.ParseSQL(ADOOF.SQL.Text, True);
ADOOF.Parameters.ParamByName('demande_client').Value:= demandeClient.Date;
ADOOF.ExecSQL;
精細我刪除的連接堅持安全信息,但總是同樣的問題。 請提出任何建議。
信息:我正在使用Microsoft SQL Server的MICROSOFT OLE DB提供程序。
如果你不想要組件,但原始的SQL執行,你可以看看[我們的開源類](http://blog.synopse.info/post/2011/06/27/SynOleDB%3A-OpenSource-Unit-for-direct-access-to-any-database-via-OleDB),它們針對SQL Server直接訪問進行了優化(沒有任何驅動程序或依賴於ADO,DB.pas單元等) )。它像'Connection.ExecuteNoResult('UPDATE OFTAB SET CA =?,demandeClient =?WHERE ID =?',[CA.Text,demandeClient.DateTime,ADOOF.FieldByName('ID')])'直接處理'TDateTime'參數' 。 –