ADO的问题 请问如何在运行期,而不是设计期,打开可视化ConnectionString的那个界面. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 见意你使用udl,使用它可以在运行期改变连结 udl?不知道是什么列,可否告知. udl其实是ini文件最简单的建立办法,把一个空白的文本文档的后缀改为udl,你就可以知道什么是udl文件了,然后再改成ini,你就可以知道UDL和INI文件有多少联系了。 哦,我知道你的意思了,我是用的INI保存的连接字符串,可是我看见我同学的程序里面在运行期动态的打开了那个可视界面,并且通过那个可视界面可以返回一个连接字符串,我只是想学习这种方法,他没有完全告诉我,只是提示要用到OLE. delphi有一个自动带的例程打开了连接字符串好像是ADOTEST自已看下吧 我记得好像要调用一个API函数。具体忘记了,不好意思^_^ 是C:\Program Files\Common Files\System\OLE DB\Data Links\DBDemos.udl这个文件把ADOCONNECTION的Provider改为上面这个文件就可以啦。。 我直接运行DBDEMOS.udl这个文件出现了那个连接数据库的对话框,问题在程序中怎么运行它呢,如tanlijun37(tlj)说的将ADOCONNECTION的Provider设置为C:\Program Files\Common Files\System\OLE DB\Data Links\DBDemos.udl这个字符传后怎么怎么触发出那个对话框如何才能从那个对话框里得到那个连接字符串呢? 找到点资料,但是看不太明白可以使用UDL文件,UDL文件到打开方式是:Rundll32.exe C:\PROGRA~1\COMMON~1\System\OLEDB~1\oledb32.dll,OpenDSLFile %1uses ADODB;然后使用函数:PromptDataSource即可,该函数原型如下:uses OleDb,ComObj,ActiveX;function PromptDataSource(ParentHandle: THandle; InitialString: WideString): WideString;var DataInit: IDataInitialize; DBPrompt: IDBPromptInitialize; DataSource: IUnknown; InitStr: PWideChar;begin Result := InitialString; DataInit := CreateComObject(CLSID_DataLinks) as IDataInitialize; if InitialString <> '' then DataInit.GetDataSource(nil, CLSCTX_INPROC_SERVER, PWideChar(InitialString), IUnknown, DataSource); DBPrompt := CreateComObject(CLSID_DataLinks) as IDBPromptInitialize; if Succeeded(DBPrompt.PromptDataSource(nil, ParentHandle, DBPROMPTOPTIONS_PROPERTYSHEET, 0, nil, nil, IUnknown, DataSource)) then begin InitStr := nil; DataInit.GetInitializationString(DataSource, True, InitStr); Result := InitStr; end;end; 你去看看《你安装的目录\Borland\Delphi6\Source\Property Editors》目录下的文件:AdoConEd.pas。打开他就知道怎么弄了。 前面有人已经提示我用PromptDataSource这个函数了,可是我奇怪的是,DP帮助里面怎么找不到这个函数的说明 delphi2010真的好吗 DBGIRD里面数据用右键删除可以吗吗` 热键不响应???为什么 报表: 怎样直接调用word文件做报表? delphi代码来分离sql数据库,出错了 请问如何在ListView控件中实现隔行显示不同的背景色? 如何通过窗体的句柄来访问窗体中的控件,如果是EDIT则返回EDIT的TEXT 如何动态配置ODBC,使之连接到本地数据文件? 急,保存照片问题!!! 三层服务器在Internet上如何屏蔽非法用户?(SOS!200分!) 能不能用delphi控制IIS打开和关闭??? 请问如何的将一个客户端的文件(可能是任何类型的文件)写入到Sql数据库???
好像是ADOTEST
自已看下吧
把ADOCONNECTION的Provider改为上面这个文件就可以啦。。
可以使用UDL文件,UDL文件到打开方式是:
Rundll32.exe C:\PROGRA~1\COMMON~1\System\OLEDB~1\oledb32.dll,OpenDSLFile %1uses ADODB;然后使用函数:PromptDataSource即可,该函数原型如下:uses
OleDb,ComObj,ActiveX;function PromptDataSource(ParentHandle: THandle; InitialString: WideString): WideString;
var
DataInit: IDataInitialize;
DBPrompt: IDBPromptInitialize;
DataSource: IUnknown;
InitStr: PWideChar;
begin
Result := InitialString;
DataInit := CreateComObject(CLSID_DataLinks) as IDataInitialize;
if InitialString <> '' then
DataInit.GetDataSource(nil, CLSCTX_INPROC_SERVER,
PWideChar(InitialString), IUnknown, DataSource);
DBPrompt := CreateComObject(CLSID_DataLinks) as IDBPromptInitialize;
if Succeeded(DBPrompt.PromptDataSource(nil, ParentHandle,
DBPROMPTOPTIONS_PROPERTYSHEET, 0, nil, nil, IUnknown, DataSource)) then
begin
InitStr := nil;
DataInit.GetInitializationString(DataSource, True, InitStr);
Result := InitStr;
end;
end;