我使用TAdoTable部件試圖,將數據插入數據庫[德爾福]
- 在形式創建我請.Append(),並在按鈕i調用.POST()
但它會加載整個桌子!我不需要它來加載任何東西,只需要在這個表中插入一行。
我想知道是否有將數據插入到數據庫使用ADO的,我使用帶有TAdoCommand的「手動」的做法已經嘗試過「好辦法」,但它不正確我看來
- 我使用Format()生成INSERT查詢並且所有字符串字段都使用QuotedStr()轉義
在此先感謝!
Arthur。
我使用TAdoTable部件試圖,將數據插入數據庫[德爾福]
但它會加載整個桌子!我不需要它來加載任何東西,只需要在這個表中插入一行。
我想知道是否有將數據插入到數據庫使用ADO的,我使用帶有TAdoCommand的「手動」的做法已經嘗試過「好辦法」,但它不正確我看來
在此先感謝!
Arthur。
可以使用TADODataset(或TADOQuery )。
我做的方式,有時是通過設置在CommandText從表中返回0的記錄,即SELECT TOP 0 * FROM [table]
,然後用.Append
和.Post
但就個人而言,我更喜歡寫SQL,如用TADOCommand
如果您不需要顯示錶格的數據,請使用TADOQuery對象。
基本上是:
您也可以使用TADOCommand組件,並讓它執行特定的SQL命令。如果您發現自己一遍又一遍地執行相同的命令(如插入到表中),請考慮使用參數,而不是直接更改每次調用的SQL。參數很容易使用,只需在您的sql中放置一個:PARAMNAME,然後使用您用於設置值的ado組件上的參數對象。例如:
假設TAdoCommand部件的CommandText含「INSERT INTO TABLENAME (FIELD1) VALUES (:FIELDVALUE1)
」
AdoCommand1.Parameters.ParamByName('FIELDVALUE1').Value := 'TEST'
AdoCommand1.Execute;
當執行上面的SQL,然後將字符串「TEST」將被寫入到FIELD1。
var
CountVar: Integer;
begin
TADOConnection1.Execute(ASQLInsertStatement, CountVar, [adExecuteNoRecords]);
end;
這就是我一直在尋找的。 「手動」安裝13個字段的插件並不美觀。 – arthurprs 2010-02-27 00:13:27
而不是「select top 0」,你也可以使用where子句,比如「select * from Table where PrimaryKeyField = 0」。只要確保使用表 – 2010-02-27 06:13:11
中不存在的值或使用WHERE 1 = 2' – 2010-03-01 08:23:06