delphi Ado 執行帶有冒號字符語句的處理。

用DELPHI的程序員都知道ADO的易用性,用ADO控件操作數據庫是非常受歡迎的,但使用ADO也會碰到一些麻煩問題,就像DELPHI 5下如果要用ADO就要先裝好ADO補丁,有的SQL的語句在數據庫工具裏執行可以成功但用DELPHI的AdoQuery執行不一定能成功。今天又碰到這問題:ADO要執行的SQL語句裏同時包含有": 時就會有問題,如下面SQL語句:

AdoQuery1.Close;
AdoQuery1.Sql.text:='Insert T_SavePartTab(FID, FPart) Values(''0001'',''"c:/part1";"d:/part2"'')';
AdoQuery1.ExecSql;

執行這語句後可能就會提示:不正常地定義參數對象。提供了不一致或不完整的信息。

這是由於ADO控件在解析SQL語句時碰到" 裏的: 時認爲: 後的是變量,是在參數Parameters[]裏進行賦值的變量,而實際上: 我們只是當字符用,這時報出要定義參數顯然不是我們想要的。

這個問題的解決方法:

  1、通過替換: 或" 字符爲其它字符(如" 替成' );

  2、不讓ADO控件檢測SQL語句參數變量,AdoQuery1.ParamCheck := false;

這兩種情況只能結合實際情況使用,都有弊端這裏就不哆嗦了,歡迎大家討論!

                                  [email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章