1,ADOConnection和ADOTable在Delphi中的使用
ADOConnection和ADOTable在Delphi中像許多書中教的那樣設置好連接上數據庫(我用的SQLServer),運行沒有問題。然後我修改,目的是可以修改連接數據庫而不用在Delphi中修改ADOConnection的ConnectionString屬性,還不出現連接對話框。
修改步驟:將LoginPrompt設置為false,將ConnectionString屬性清空,添加連接代碼
conStr:='Provider=SQLOLEDB.1;PassWord=1982072019;User ID=sa;Initial Catalog=StorageManagement;Data Source=10.16.99.175';
try
loginForm.tempADOConnection.ConnectionString :=conStr;
loginForm.tempADOConnection.Connected := true;
except
messagedlg('數據庫連接有誤!!請檢查DataConfig.XML',mtConfirmation,[mbOk],0);
Application.Terminate;
end;
這樣程序運行起來,連接數據庫是沒有問題的。但出現的問題是在dlephi中ADOTable控件是不能連接表的,因為ConnectionString屬性沒有值。報錯為“無效的授權說明”。如何既能在Delphi中使用ADOConnection和ADOTable控件,又可以不出現那個討厭的連接對話框。
2,在Delphi中使用sql語句。
因為sql語句中給字符串賦值需要用雙引號,而delphi中用單引號括起字符串,我使用遇到了一些問題。我試驗的結果是Delphi中用兩個單引號代替sql語句中的雙引號。不知道對不對?
具體如何使用,我還是不太清楚。
3,在Delphi 7.0中使用ADOQuery的返回結果,書中介紹使用Params['xxxx'].AsString;
我使用後報錯,但有一個光盤的程序這樣使用沒有報錯。我使用的是Parameters['xxxx'],也使用不了.AsString
4,原代碼:
====================================================================
if canInsert then
begin
with allDataModule.AQ_OtherMaterIElOut do
begin
Close;
SQL.Clear;
SQL.Text:='insert otherMaterielOut(materIElID,amount) values (:insertID,:insertAmount,)';
Parameters[0].Value:=myMaterIEl;
Parameters[1].Value:=myAmount;
ExecSQL;
end;
with allDataModule.AQ_OtherMaterIElStock do
begin
Close;
SQL.Clear;
SQL.Text:='update otherMaterielStock set amount=amount-:updateAmount where materIElID=:updateID';
Parameters[0].Value:=myAmount;
Parameters[1].Value:=myMaterIEl;
ExecSQL;
end;
materIElOutForm.Close;
end;
在這段代碼之後
with allDataModule.AQ_OtherMaterIElOut do
begin
Close;
SQL.Clear;
SQL.Text:='update otherMaterielStock set amount=amount-:updateAmount where materIElID=:updateID';
Parameters[0].Value:=myAmount;
Parameters[1].Value:=myMaterIEl;
ExecSQL;
end;
不能使用allDataModule自動顯示可以使用的控件列表功能,但我強加上後面的代碼仍然可以使用。怎麼回事?