我是使用Delphi编程的新手。我目前正在创建一个简单的笔记本程序,我需要一些帮助。我有一个名为5个tEdit字段的联系人的表单。我想我可以在sybase数据库中创建一个存储过程,以便将记录插入到Contacts表中,因此可以使用delphi程序来调用它。如何在delphi中调用此过程?插入的值应取自这些tEdit字段中的用户输入。有人有建议吗?还是我想错了方向?提前致谢
您在这里有几种选择,这取决于您使用的VCL控件。(1)。您可以通过tTable组件插入。这使您可以快速,轻松地进行低级控制。您将组件拖放到表单上,设置组件属性(表名等),然后类似
MyTable.Open;
MyTable.Insert; (or maybe append)
MyTable.FieldByName('MY_FIELD').AsString := 'Bob'; // set the field values
MyTable.post;
(2)。使用SQL。在窗体上放置一个SQL组件。使用参数设置SQLText属性;例如:“插入表(MyField)值:X”。我的意见是,这在复杂情况下,关联的子选择等情况下更容易实现。
MySQL.Close;
MySQL.ParamByName('X').AsString := 'BOB';
ExecSQL;
(3)。使用存储过程。-这样做的好处是它们可以被多个应用程序使用,并且可以轻松更改。如果要更新SQL代码,则只需更新一次(在数据库中),而不必在应用程序中进行更改,然后将应用程序分发给多个用户。
尽管我不知道您的VCL库的详细信息,但该代码几乎可以识别为(2)。但是实际上,您将指定要运行的例程,指定参数值,然后执行存储过程。
请注意,所有这些例程都将返回错误代码或异常代码。最佳做法是始终检查...
这是使用SQL语句qLoader的更复杂的示例。qLoader存在于数据模块上。我正在传递一个参数,执行SQL语句,然后遍历所有结果。
try
with dmXLate.qLoader do
begin
Close;
ParamByName('DBTYPE').AsString := DBType;
Open;
while not dmXLate.qLoader.Eof do
begin
// Here is where we process each result
UserName:= dmXLate.qLoader.FieldByName('USERNAME').AsString;
dmXLate.qLoader.Next;
end;
end;
except
on E: Exception do
begin
ShowMEssage(E.Message);
exit;
end;
end;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句