将数据插入数据库[Delphi]

时间:2010-02-26 20:10:11

标签: sql database delphi ado

我正在尝试使用TAdoTable组件

  • 在表单上创建我调用.Append()并在一个按钮中调用.Post()

但它会加载整个表格!我不需要它来加载任何东西,只需要在这个表中插入一行。

我想知道是否有“好方法”使用Ado将数据插入数据库,我已经尝试过使用TAdoCommand的“手动”方法,但对我来说似乎不对

  • 我使用Format()生成INSERT查询,并使用QuotedStr()
  • 转义所有字符串字段

提前致谢!

亚瑟。

4 个答案:

答案 0 :(得分:6)

如果您不需要显示表的数据,请使用TADOQuery对象。

基本上:

  • 使用TADOQuery.SQL.Text设置SQL命令
  • 使用TADOQuery.ExecSQL方法触发SQL命令

答案 1 :(得分:6)

您可以使用TADODataset(或TADOQuery)。

我这样做的方式有时是通过设置CommandText从表中返回0条记录,即SELECT TOP 0 * FROM [table],然后使用.Append.Post

但就个人而言,我更喜欢编写SQL,例如使用TADOCommand

答案 2 :(得分:2)

您还可以使用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。

答案 3 :(得分:1)

var
  CountVar: Integer;

begin

  TADOConnection1.Execute(ASQLInsertStatement, CountVar, [adExecuteNoRecords]);

end;