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控件

原文地址:http://blog.51cto.com/1546594/2147253

时间: 2024-08-07 12:43:31

Delphi动态链接多个数据源执行操作例子的相关文章

Linux动态链接(2)so初始化执行

一.so文件和exe文件这两种文件其实具有很多相似自出,或者说so文件是介于obj文件和exe文件的一种中间过渡形式,它虽然不能直接运行(但是经过特殊编写的so文件内核是支持加载运行的,例如ld.so),但是具有了自己的一些更为高级的内容,例如一些初始化节,got表等内容,虽然孱弱,但是它具有了更加完善的生物形态.但是大家不要用进化论的观点来认为so文件比exe文件出现的早,事实上so是比较新的一个概念.我们看一下这些文件类型的标识类型说明#define ET_NONE   0#define E

C# 线程池执行操作例子

public partial class Form1 : Form { CountdownEvent hander = new CountdownEvent(10); public static object lock_action = new object(); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { for (int i = 0; i

动态链接详解

动态链接 动态链接的诞生: 动态链接产生最主要的原因就是静态链接空间浪费过于巨大,更重要的是现阶段各种软件都是模块化开发,不同模块都是由不同厂商开发的,一旦一个模块发生改变,整个软件就需要重新编译(静态链接的情况下). 动态链接主要思想: 把链接这个过程推迟到了运行时再运行,这就是动态链接(Dynamic Linking)的基本思想. 动态链接的好处: 1.动态链接将共享对象放置在内存中,不仅仅节省内存,它还可以减少物理页面的换进换出,也可以提高CPU缓存的命中率,因为不同进程间的数据与指令都集

delphi中如何动态链接excel格式数据库

一般要两步,首先确定XLS文件(用打开对话框可以实现),再找到对应的页(作一个循环,再写入一个COMBOBOX)uses Excel97,(ExcelXP,)Excel2000 //注意顺序ExcelXP自动加添加控件: ExcelApplication1: TExcelApplication; ExcelWorksheet1: TExcelWorksheet; ExcelWorkbook1: TExcelWorkbook; Edit1: TEdit; OpenDialog1: TOpenDia

再探Linux动态链接 -- 关于动态库的基础知识

  在近一段时间里,由于多次参与相关专业软件Linux运行环境建设,深感有必要将这些知识理一理,供往后参考. 编译时和运行时 纵观程序编译整个过程,细分可分为编译(Compiling,指的是语言到平台相关目标文件这一层次)和链接(Linking,指目标文件到最终形成可执行文件这一层次),这个总的过程可称为编译时:就动态链接而言,还存在一个运行时,即程序在被操作系统加载的过程中,系统将该程序需要的动态库加载至内存到程序开始运行的这一段过程.明确这两个过程在一般linux开发中的地位,以及了解每个"

实例分析ELF文件动态链接

参考文献: <ELF V1.2> <程序员的自我修养---链接.装载与库>第6章 可执行文件的装载与进程 第7章 动态链接 <Linux GOT与PLT> 开发平台: [[email protected] dynamic_link]# uname -a Linux tanghuimin 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 实例讲解

ELF文件加载与动态链接(二)

GOT应该保存的是puts函数的绝对虚地址,这里为什么保存的却是[email protected]的第二条指令呢? 原来“解释器”将动态库载入内存后,并没有直接将函数地址更新到GOT表中,而是在函数第一次被调用时,才会进行函数地址的重定位,这样做的好处是可以加快程序加载速度,尤其对大型程序来说.有关这方面的更详细的信息,可以搜索“动态链接库的延迟绑定技术”. 继续看第二条指令,pushq $0x0代表什么? 查看Hello world程序的重定位节: [email protected]:~/wo

读《程序员的自我修养 —— 装载与动态链接》乱摘

2016.05.14 – <程序员的自我修养 -- 链接.装载与库>的装载与动态链接部分. - 余甲子 石凡 潘爱民编 个人选读笔记 - 学点表皮. 05.14 PART II 装载与动态链接 1 可执行文件的装载与进程 1.1 进程虚拟地址空间的大小 每个进程拥有自己独立的虚拟地址空间,该虚拟地址空间的大小由计算机的硬件平台决定,具体地说是由CPU的位数决定的(地址线 -- C语言中的指针所占空间).硬件决定了地址空间的最大理论上限,即硬件的寻址空间大小,如32位的硬件平台决定了虚拟地址空间

CodeBlocks静态链接与动态链接设置

静态库和动态库的区别 1.静态库 之所以称之为"静态库",是因为在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中.因此对应的链接方式称为静态链接. 从本质上来说,一个静态库可以简单看成是一组目标文件(.o/.obj文件)的集合,静态库与汇编生成的目标文件(.o/.obj)一起链接为可执行文件. 静态库(后缀为.a/.lib)和.o文件格式相似.即很多目标文件经过压缩打包后形成的一个文件 静态库特点总结: 1. 静态库对函数库的链接是放在编译时期完成的 2.