还有,在delphi中自带了一个DBDEMOS.udl,你用CONNECTION的data link 连接到它(不要用use connection string 连接),在程序运行前把它(DBDEMOS.udl)配置成你要用的数据库就行了。
TO myemwjb(): 大哥,我找到DBDEMOS.UDL了,我用的ADOCONNECTION没有 你说的DATA LINK 啊,你具体讲的是什么意思啊?可以说的再明确点的吗?
你做一个数据库配置的窗口就是了! 你的意思是把ADO的那个连接配置窗口丢给用户用?那太恶心了吧!
我现在可以找到DBDEMOS.UDl了,但是我打不开啊。我试了下面的方法: winexec('d:\tmp\tmp\DBDEMOS.udl',1); ShellExcute(handle,pchar(open'),pchar('Microsoft Data Access-OLE DB Core Services'),pchar(‘d:\tmp\tmp\DBDEMOS.udl'),nil,1); 我不知道用什么程序打开它,也不清楚它怎么和我的ADOCONNECTION连接啊。
做个INI文件吧,多方便,而也不用用户去修改,你只要在网络上帮他们改就行了。
我不明白你的意思啊,自己做配置窗口的话,你把用户输入的值赋给ADOconnection就可以了!
也对,做个INI文件,但是怎么使用它我不知道啊,我是刚学的DELPHI啊。
TO WULOVEXUE: 我就是要在用户点击一个按纽的时候出现 配置 CONNECTION 的几个窗体,让用户自己配置啊,
TO WULOVEXUE: 我就是要在用户点击一个按纽的时候出现 配置 CONNECTION 的那个窗体(数据连接属性),让用户自己配置啊。
我给代码出来,你至少加我50分以上!!! 你先在FORM1上放一个ADOCONNECTION 再放一些DATASOURCE、和ADOQUERY呀ADOTABLE之类的连接控件,把这些连接控件指向ADOCONNECTION就可以了,然后再写procedure TForm1.FormCreate(Sender: TObject); var inifile:Tinifile; db1url:string; begin inifile:= Tinifile.Create(ExtractFilePath(paramstr(0))+'option.ini');if FileExists(ExtractFilePath(paramstr(0))+'option.ini') then begin db1url:=inifile.readString('Option','db1url','Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=sellOrderform;Data Source=X254C'); ADOCONNECTION1.ConnectionString:=db1url; end else begin inifile.WriteString('Option','db1url','Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=sellOrderform;Data Source=X254C'); db1url:=inifile.readString('Option','db1url','Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=sellOrderform;Data Source=X254C'); ADOCONNECTION1.ConnectionString:=db1url; end;end;这样就可以在你程序的当前目录生成一个OPTION.INI的文件,你就可以在传给客户机时改它的服务器了。
TO HAPPYHONG: 大哥,LOGINPROMPT我知道设置的。但是ADOCONNECTION有两种配置方法:USE DATA LINK FILE 和 USE CONNECTION STRING。我想实现就有两种方法:1.DATA LINK,我让用户使用前先配置DBDEMOS.UDL,就是通过 数据连接属性 窗口实现。2.CONNECTION STRING,用你的方法生成INTFILE,我每次仅仅需要写一个INIFILE给他就好。 现在的问题是:我的ADOCONNECTION连接只可以用一种方法啊,我想让用户选择使用两者的任意一个。那我在生成EXE的时候,用那个呢(默认是CONNECTION STRING)?
大哥,我要用的配置的CONNECTION是要使用几个地方的数据库的,我们是总部,但是要给各个分部的人使用的,让他们自己配置他们的SQL数据库。我的意思是 ,到给他们使用的时候,出现配置数据库的几个步骤就好。
大哥,我找到DBDEMOS.UDL了,我用的ADOCONNECTION没有 你说的DATA LINK 啊,你具体讲的是什么意思啊?可以说的再明确点的吗?
你的意思是把ADO的那个连接配置窗口丢给用户用?那太恶心了吧!
winexec('d:\tmp\tmp\DBDEMOS.udl',1);
ShellExcute(handle,pchar(open'),pchar('Microsoft Data Access-OLE DB Core Services'),pchar(‘d:\tmp\tmp\DBDEMOS.udl'),nil,1);
我不知道用什么程序打开它,也不清楚它怎么和我的ADOCONNECTION连接啊。
我就是要在用户点击一个按纽的时候出现 配置 CONNECTION 的几个窗体,让用户自己配置啊,
我就是要在用户点击一个按纽的时候出现 配置 CONNECTION 的那个窗体(数据连接属性),让用户自己配置啊。
你先在FORM1上放一个ADOCONNECTION
再放一些DATASOURCE、和ADOQUERY呀ADOTABLE之类的连接控件,把这些连接控件指向ADOCONNECTION就可以了,然后再写procedure TForm1.FormCreate(Sender: TObject);
var
inifile:Tinifile;
db1url:string;
begin
inifile:= Tinifile.Create(ExtractFilePath(paramstr(0))+'option.ini');if FileExists(ExtractFilePath(paramstr(0))+'option.ini') then
begin
db1url:=inifile.readString('Option','db1url','Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=sellOrderform;Data Source=X254C');
ADOCONNECTION1.ConnectionString:=db1url;
end
else
begin
inifile.WriteString('Option','db1url','Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=sellOrderform;Data Source=X254C');
db1url:=inifile.readString('Option','db1url','Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=sellOrderform;Data Source=X254C');
ADOCONNECTION1.ConnectionString:=db1url; end;end;这样就可以在你程序的当前目录生成一个OPTION.INI的文件,你就可以在传给客户机时改它的服务器了。
大哥,分数好说,是不是少了个 USE 句子啊,怎么显示 'tinifile没定义’啊,还有‘缺少操作’和‘TCONPONENTS AND STRING’不匹配啊?
大哥,你的方法我知道的,就是使用DELPHI的DBDEMOS.UDL啊,让使用者用前先配置它,这个我早实现了啊。我的意思是把 DBDEMOS.UDL 的数据连接属性 的窗体 ,集成到一个按纽的CLICK事件中,怎么实现啊,大哥?
大哥,程序编译没有问题,但是,一运行就出现一个“对象打开时,不允许操作”的窗体啊?
我是不是仅仅要把 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=sellOrderform;Data Source=X254C'); 这句改成我的就可以了啊 ?
我是不是,要把 上面的那句改成我的啊。(先用ADOCONNECTION连接一下数据库,产生一个CONNECTIONSTRING,用它覆盖你的啊。)
大哥,LOGINPROMPT我知道设置的。但是ADOCONNECTION有两种配置方法:USE DATA LINK FILE 和 USE CONNECTION STRING。我想实现就有两种方法:1.DATA LINK,我让用户使用前先配置DBDEMOS.UDL,就是通过 数据连接属性 窗口实现。2.CONNECTION STRING,用你的方法生成INTFILE,我每次仅仅需要写一个INIFILE给他就好。 现在的问题是:我的ADOCONNECTION连接只可以用一种方法啊,我想让用户选择使用两者的任意一个。那我在生成EXE的时候,用那个呢(默认是CONNECTION STRING)?
大哥,我实现是用两个按纽,一是选择LINK,一是选择STRING,问题是,选择STRING的时候可以在BUTTON CLICK事件中写代码读INIFILE文件实现配置,选择LINK呢,怎么弹出窗体、具体怎么实现?
USES ADODB调用promptdatasource(handle,'')这个系统窗口,返回值就是你要的ADOCONNECTION的CONNECTSTRING你爱保存到注册表或者INI中都可以,下次就直接读出来就可以了
大哥,说的具体点啊,具体应该做那几步,我刚学的DELPHI,还不是太了解。
请问怎么保存注册表或者INI中,盼望你能回答我的问题
大哥,怎么一直是 "对象打开时,不允许操作"的窗体啊,是不是 要先关掉 CONNECTION 还是先关掉 ADOQUERY ?怎么关啊,ADOQUERY1.CLOSE AND ADOCONNECTION什么操作?
inifile.WriteString('Option','db1url','Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=sellOrderform;Data Source=X254C');
吗?
大哥,你说的我知道的啊。我已经实现了啊,就是运行时,出现"对象打开时,不允许操作"的窗体啊,是不是要先断掉CONNECTION?
大哥,你的方法对的啊,我也可以实现的。