Delphi动态链接多个数据源执行操作例子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi动态链接多个数据源执行操作例子相关的知识,希望对你有一定的参考价值。

1.首先配置文件
[SubExamDep1]
DBSERVER=(local)
DBNAME=herpeisweixin
USERNAME=sa
PWD=bjbr
MSG=SubExamDep1失败
[SubExamDep2]
DBSERVER=(local)
DBNAME=herpeisFZTJ
USERNAME=sa
PWD=bjbr
MSG=SubExamDep2失败
2.工程文件加入 Inifiles 文件
public:
MyIni :Tinifile;
glAppPath :string;
create 事件增加
glAppPath := ExtractFilePath(Application.ExeName);//获取当前运行程序的路径
MyIni := Tinifile.Create(glAppPath + ‘SubDBConfig.ini‘);

初始化表单增加
with spSP_SyncOrg do
begin

  ProcedureName:=‘P_SYNCORGINF‘;
  Parameters.CreateParameter(‘@ID_Org‘, ftInteger, pdInput, 0,null );
  Parameters.CreateParameter(‘@ID_OrgReservation‘, ftInteger, pdInput, 0, null);
  Parameters.CreateParameter(‘@RetMsg‘,ftString,pdOutput,50,null)
end;

    实现按钮事件
    procedure TFormPeisOrgReservation.btn_IssuedSubClick(Sender: TObject);

var
i:Integer;
DBSERVER,DBNAME,USERNAME,PWD:string;
CurSecetion:string;
CURID_ORG,CURID_OrgReservation :Integer;
MSG,retMSG,SumMsg:string;
sucessnum:Integer;

begin
MSG:=‘‘;
retMSG:=‘‘;
SumMsg:=‘‘;

if not aqMain1.Active then
begin
  Exit;
end;
lst1.Clear;
CURID_ORG:=aqMain1.fieldbyname(‘ID_Org‘).Value;
CURID_OrgReservation:=aqMain1.fieldbyname(‘ID_OrgReservation‘).Value;
sucessnum:=0;
MyIni.ReadSections(lst1.Items);
for i:=0 to lst1.Count-1 do
begin
  CurSecetion:=lst1.Items[i];
  DBSERVER:=MyIni.ReadString(CurSecetion,‘DBSERVER‘,‘‘);
  DBNAME:=MyIni.ReadString(CurSecetion,‘DBNAME‘,‘‘);
  USERNAME:=MyIni.ReadString(CurSecetion,‘USERNAME‘,‘‘);
  PWD:=MyIni.ReadString(CurSecetion,‘PWD‘,‘‘);
  MSG:=MyIni.ReadString(CurSecetion,‘MSG‘,‘‘);

   try
      ADOConnection1SUB.Connected:=False;
      ADOConnection1SUB.ConnectionString:=‘Provider=SQLOLEDB.1;Password=‘+PWD+‘;Persist Security Info=True;User ID=‘+USERNAME+‘;Initial Catalog=‘+DBNAME+‘;Data Source=‘+DBSERVER;
      ADOConnection1SUB.Connected:=True;
      spSP_SyncOrg.Parameters.ParamByName(‘@ID_ORG‘).Value:=CURID_ORG;
      spSP_SyncOrg.Parameters.ParamByName(‘@ID_OrgReservation‘).Value:=CURID_OrgReservation;
      spSP_SyncOrg.ExecProc;
      retMSG:=spSP_SyncOrg.Parameters.ParamByName(‘@RetMsg‘).Value;

      if retMSG=‘同步成功!‘ then
      begin
          sucessnum:=sucessnum+1;
      end;

      if retMSG=‘同步失败!‘ then
      begin
         if SumMsg=‘‘ then
         begin
            SumMsg:=MSG;
         end
         else
         begin
            SumMsg:=SumMsg+‘,‘+MSG;
         end;

      end;

   except
   end;

end;
if sucessnum=lst1.Count then
begin
   ShowMessage(‘同步成功!‘);
end
else
begin
   if SumMsg=‘‘ then
   begin
      ShowMessage(‘执行失败!‘);
   end
   else
   begin
      ShowMessage(SumMsg);
   end;
end;

end;

界面放一个adoconnection和listbox控件

以上是关于Delphi动态链接多个数据源执行操作例子的主要内容,如果未能解决你的问题,请参考以下文章

Delphi Dll 动态调用例子-仔细看一下

常用动态链接库的DLL都有哪些?

Delphi DBGridEH查询出内容之后,自动执行选中点击第一行的内容动作.

Delphi 动态链接库的动态和静态调用 (仔细读一下)

是否可以动态编译和执行 C# 代码片段?

动态数据库的啥是动态链接库?