打包时如何配置odbc?(server数据库)(18分)

B

bbcock

Unregistered / Unconfirmed
GUEST, unregistred user!
编了个数据库方面的程序,现需要打包发布,用的odbc连的sql server数据库,我用setupbuilder打包时,该怎么配置数据源?需要bde吗?数据库路径是什么?别名又是什么?
 
你用DELPHI单独写个写注册表的小程序,然后打包程序结束时候,自动引用你这个程序,就完事了。
在打包程序里写注册表配置,太罗嗦。
 
在工程文件里做这项工作不好吗?每次启动程序时就创建一次,这样odbc的别名既不需要有户配置,又不用担心用户误删除。只要odbc没出错,你的系统永远保证可以启动得了。
 
你们的意思是写注册表创建odbc?没这么夸张吧,不然要打包程序干啥?
 
server能打包进去吗?好像不行吧
 
1、odbc是让用户自己配的,或你们的客服配置的。否则要客服干吗?
2、打包用delphi的打包程序,把bde包括进来就ok了。
3、你程序里肯定要有让用户输入odbc(或bde)名(包括用户名、密码)的地方,如果这都没有,嘿嘿,程序是怎么写的?
 
这个不叫夸张,永远不要把你的用户想像得象负有责任心及强烈自我学习进取心会分析错误解决困难的程序员,让他们越方便越好。
 
在程序中设置ODBC
var
tempreg:tregistry;
tempreg:=tregistry.create;
with tempregdo
begin
rootkey:=hkey_local_machine;
if openkey('software/odbc/odbc.ini/odbc data sources',true) then
begin
writestring('yourodbc','your sql server');//写入数据库别名及数据库驱动名
end
else
begin
showmessage('增加数据源失败');
exit;
end;
closekey;
end
 
上床的兄弟,你能不能针对SQL 动态建立ODBC别名写得详细一点。如
登入名,'SA',SQL 服务器的位置(IP)
谢谢。
我到网上看到一篇,但具体不知怎么写。也请你指点一下。

<< 106、如何动态设置ODBC源 >>
很多时候程序员需要自动生成ODBC数据源,而不是指导客户"打开控制面板… … ",到底如何去做呢?相信很多人会选择编程修改注册表来实现这项功能,因为ODBC的详细信息全部存放在注册表的下述键值内:
"HKEY_LOCAL_MACHINE/SOFTWARE/ODBC"
修改一下ODBC的配置,通过前后的注册表比较,你可以发现一定的规律。在这里我只是想说,哥们,别这么犯傻了(如果我让你写一个通用的ODBC源处理程序,你得累死),用这个Windows ODBC API函数吧,
function SQLConfigDataSource(hwndParent: Integer;
fRequest: Integer;
lpszDriverString: String;
lpszAttributes: String): Integer;
stdcall;external 'ODBCCP32.DLL';
  了解数据库编程的朋友都知道,数据库的访问方式不论DAO、ADO、ODBC或是BDE或是其它第三方的数据库连接控件,归根结底,都是一些个函数集,只要你愿意,你可以编写出自己的数据库访问方式用以替代。深入研究这些底层函数,很多时候会为你提供相当地便利。
  SQLConfigDataSource这个函数MSDN有详细的说明,我不想整段翻译下来让你扁我,我只是结合流行的SQL Server谈谈如何有技巧的调用该函数。其它的数据库大同小异。
  SQLConfigDataSource(0, ODBC_ADD_SYS_DSN,'SQL Server',
  'DSN=Record_ODBC'+ chr(0) +
  'Server=(local)'+ chr(0) +
  'Database=master'+ chr(0) +
  'Description=DragonPC SQLServer ODBC Source'+ chr(0));

  这是我的Delphi程序中调用该函数的一个实例,第一个参数是父窗口句柄,设置为0则该函数不显示任何对话框。第二个参数是操作类型,你需要定义如下的操作类型常量: Const
  ODBC_ADD_DSN = 1;
// Add a new user data source.
  ODBC_CONFIG_DSN = 2;
// Configure (modify) an existing user data source.
  ODBC_REMOVE_DSN = 3;
// Remove an existing user data source.
  ODBC_ADD_SYS_DSN = 4;
// Add a new system data source.
  ODBC_CONFIG_SYS_DSN = 5;
// Modify an existing system data source.
  ODBC_REMOVE_SYS_DSN = 6;
// Remove an existing system data source.
  从名字我们知道,要添加ODBC源,我们需要调用的是ODBC_ADD_SYS_DSN 或是ODBC_ADD_DSN参数。第三个参数也没有什么好说的,我们添加的是SQL Server数据库的ODBC源,所以填入'SQL Server'参数,如果需要建立Excel文件的ODBC数据源,我们可以填入'Excel Files (*.xls)',这些字符串参数相信各位同志在添加ODBC源时,已经多次见过。
关键的是第三个参数的设置,不同的数据库类型所支持的关键字是不一样的,这里仅仅就SQL Server所支持的关键字作一个简单说明:
  DSN:你的ODBC数据源名称。
  Server:你的数据库服务器名称,使用(local)指的是本地计算机安装的数据库。注:最新的SQL Server 2000支持一台计算机运行多个SQL Server服务,这个时候你需要指定SqlSever的InstanceName。
  Address:指定SQL Server服务器的网络IP地址。
  Database:指定默认数据库名称。
  Language:指定默认语言。
  Description:备注信息。
  详细的参数和信息可以查阅微软网站的以下网址。
  http://msdn.microsoft.com/library/psdk/dasdk/odch3kit.htm
  http://msdn.microsoft.com/library/psdk/sql/od_odbc_c_99yd.htm
为了网站建设得更好,请支持我,花几分钟时间,加入亚洲交友中心或注册幸运邮件,对你只是举手之劳...
加入 亚洲交友中心 - 最大亚洲个人交友中心网站!

 
多人接受答案了。
 

Similar threads

D
回复
0
查看
691
DelphiTeacher的专栏
D
D
回复
0
查看
705
DelphiTeacher的专栏
D
D
回复
0
查看
719
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部