打包时能将ODBC的配置打进去么?(25分)

  • 主题发起人 kidman520
  • 开始时间
K

kidman520

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Installshield做的打包程序,想把ODBC的配置打进去,请问各位大哥如何实现呢?
希望多指教!多谢了!
 
Installshield旧版本好像不行,不过好像可以用程序实现,
保存为url文件,然后让他自注册不知道可不可以。
 
我只知道用鼠标操作的方法,就是找到component页,然后右键点击一个component节点,
选择insert installshield object.
源代码没有找到,有知道的请告知.
 
从有边移到左边
 
好像是写注册表。但我没试成功:
加Sybase system 11的驱动程序。
[HKEY_LOCAL_MACHINE/Software/ODBC/ODBCINST.INI/ODBC Drivers]
"Sybase System 11"="Installed"
[HKEY_LOCAL_MACHINE/Software/ODBC/ODBCINST.INI/Sybase System 11]
"AltDefaults"="1"
"APILevel"="1"
"ConnectionFunctions"="YYY"
"DriverODBCVer"="03.00"
"FileUsage"="0"
"Driver"="C://WINDOWS//System//SYSYB95.DLL"
"Setup"="C://WINDOWS//System//SYSYB95.DLL"
"smProcessPerConnect"="Y"
"SQLLevel"="0"
"UsageCount"="1"
-------------------
加ODBC的配置。
[HKEY_LOCAL_MACHINE/Software/ODBC/ODBC.INI]
[HKEY_LOCAL_MACHINE/Software/ODBC/ODBC.INI/ODBC Data Sources]
"iamis"="Sybase System 11"
[HKEY_LOCAL_MACHINE/Software/ODBC/ODBC.INI/iamis]
"Driver"="C://WINDOWS//System//SYSYB95.DLL"
"Description"=""
"ServerName"="sybase"
"Servers"=""
"Database"="iamis"
"Databases"=""
"LogonID"=""
"InterfacesFile"=""
"Charset"=""
"WorkStationID"=""
"Language"=""
"ApplicationName"=""
"OptimizePrepare"="2"
"ArraySize"="50"
"SelectMethod"="1"
"RaiseerrorPositionBehavior"="0"
"PacketSize"="0"
"CursorCacheSize"="1"
"PasswordEncryption"="0"
"ApplicationUsingThreads"="1"
"EnableQuotedIdentifiers"="0"
"SecurityServiceProvider"=""
"DirectoryServiceProvider"=""
"InitializationString"=""
"DefaultLongDataBuffLen"="1024"

 
按上面的方法应该是可以的。
 
这是delphi里一个创建sqlserver数据库odbc系统dsn别名的过程,
别名和数据库名相同.
procedure CreateSqlDsn(DatabaseName:string);
var
DriverAddr :string;
DsnAliasName :string;
Hostname :string;
name :pchar;
size :dword;
ARegistry :TRegistry;
begin
size:=255;
getmem(name,size);
getcomputername(name,size);
hostname:=name;
freemem(name);
ARegistry := TRegistry.Create;
with ARegistry do
{创建一个TRegistry对象实例 }
begin
RootKey := HKEY_LOCAL_MACHINE;//读sql server 数据库配置
if OpenKey( 'SOFTWARE/ODBC/ODBCINST.INI/SQL Server', False ) then
begin
driveraddr:=ReadString('Driver');
end
else
begin
CloseKey;
exit;
end;
CloseKey;
RootKey := HKEY_LOCAL_MACHINE;//写dsn配置
if not OpenKey( 'SOFTWARE/ODBC/ODBC.INI/'+databasename, False ) then
begin
OpenKey( 'SOFTWARE/ODBC/ODBC.INI/'+databasename, true);
//~~~~~~~~~~~~别名
WriteString('Driver',driveraddr);
WriteString('Server',hostname);
WriteString('Database',databasename);
WriteString('LastUser','sa');
end;
CloseKey;
RootKey := HKEY_LOCAL_MACHINE;//添加别名
if OpenKey( 'SOFTWARE/ODBC/ODBC.INI/ODBC Data Sources', False ) then
begin
if not ValueExists(databasename) then
WriteString(databasename,'SQL Server');
end;
CloseKey;
end;
end;
 
IS Express3.51(Delphi6光盘带)可以对ODBC配置打包,方法是选择ODBC配置项,然后将你
要打包的DSN打上勾就可以了
 
多人接受答案了。
 
顶部