W
wiseinfo
Unregistered / Unconfirmed
GUEST, unregistred user!
大家可以在这里下载这个,使用ODBC API刷新本地局域网内SQL服务器的组件
http://www.2ccc.com/article.asp?articleid=2798
主要是这些来实现
Function SQLAllocHandle(HandleType: SmallInt; InHandle: Pointer; OutHandle: PPointer): SmallInt; stdcall; external 'odbc32.dll' name 'SQLAllocHandle';
Function SQLSetEnvAttr(EnvHandle: Pointer; Attribute: LongInt; Value: Integer; StringLength: LongInt): SmallInt; stdcall; external 'odbc32.dll' name 'SQLSetEnvAttr';
function SQLBrowseConnect(HDBC: Pointer; szConnStrIn: Pchar; cbConnStrIn: SmallInt; szConnStrOut: PChar; cbConnStrOutMax: SmallInt; pcbConnStrOut: Pointer): SmallInt; stdcall; external 'odbc32.dll' name 'SQLBrowseConnect';
function SQLDisconnect(ConHandle: Pointer): SmallInt; stdcall; external 'odbc32.dll' name 'SQLDisconnect';
function SQLFreeHandle(HandleType: SmallInt; Handle: Pointer): SmallInt; stdcall; external 'odbc32.dll' name 'SQLFreeHandle';
大家注意了,我以前也用此方法来实现,但是一个致使的问题是,
如果你用.manifest来实现XP效果,在XP操作系统中,获取列表,当前程序中WIN32的控件,如TOOLBAR,PAGECONTROL,STATBAR这些控件就崩溃了,大家可以在XP环境,Hr168例子上加个TOOLBAR控件,再在演示目录放个的Project1.exe.manifest,再运行EXE,获取列表后,TOOLBAR控件就没有,这个知道是ODBC API在WINXP的BUG,还是DELPHI的BUG???
注意,这个问题广泛存在,我还发现另一种关系到ODBC情况也有这问题,我是引用这个例子给大家参考,别一种情况http://www.delphibbs.com/delphibbs/dispq.asp?lid=3216354
http://www.2ccc.com/article.asp?articleid=2798
主要是这些来实现
Function SQLAllocHandle(HandleType: SmallInt; InHandle: Pointer; OutHandle: PPointer): SmallInt; stdcall; external 'odbc32.dll' name 'SQLAllocHandle';
Function SQLSetEnvAttr(EnvHandle: Pointer; Attribute: LongInt; Value: Integer; StringLength: LongInt): SmallInt; stdcall; external 'odbc32.dll' name 'SQLSetEnvAttr';
function SQLBrowseConnect(HDBC: Pointer; szConnStrIn: Pchar; cbConnStrIn: SmallInt; szConnStrOut: PChar; cbConnStrOutMax: SmallInt; pcbConnStrOut: Pointer): SmallInt; stdcall; external 'odbc32.dll' name 'SQLBrowseConnect';
function SQLDisconnect(ConHandle: Pointer): SmallInt; stdcall; external 'odbc32.dll' name 'SQLDisconnect';
function SQLFreeHandle(HandleType: SmallInt; Handle: Pointer): SmallInt; stdcall; external 'odbc32.dll' name 'SQLFreeHandle';
大家注意了,我以前也用此方法来实现,但是一个致使的问题是,
如果你用.manifest来实现XP效果,在XP操作系统中,获取列表,当前程序中WIN32的控件,如TOOLBAR,PAGECONTROL,STATBAR这些控件就崩溃了,大家可以在XP环境,Hr168例子上加个TOOLBAR控件,再在演示目录放个的Project1.exe.manifest,再运行EXE,获取列表后,TOOLBAR控件就没有,这个知道是ODBC API在WINXP的BUG,还是DELPHI的BUG???
注意,这个问题广泛存在,我还发现另一种关系到ODBC情况也有这问题,我是引用这个例子给大家参考,别一种情况http://www.delphibbs.com/delphibbs/dispq.asp?lid=3216354