用ADO+SQL2000想使程序在其他机子上成功运行,需要配置点什么数据库或数据表要保留哪一部分到其他机子上这些配置可以在编程中动态实现吗?哪些只能通过手工配置来完成求教,谢谢了
解决方案 »
- spcomm控件的下载及安装?
- com 组件的发布问题
- delphi7裡面F1Book如何打開excel文件
- select()函数使用的问题,大家帮忙看看!
- 帮忙解决一个有关流操作的地址冲突,总共十几行代码
- 我写了一段计算程序当时可以计算,可是当我查看dbgrid表的时候计算的结果却不能及时改变。怎么解决呀?
- 请问为什么我的delphi mdi程序在老式的14寸显示器上会变形?
- 请问从过程或函数的定义部分跳转到实现部分有快捷方式吗?是什么?
- 怎么把带有'的字符添加到数据库中
- 各位兄弟,一个关于mediaplayer的问题,帮帮忙,在下先行谢过
- 大家看看这个简单的问题
- 媒体播放器中的循环播放怎么做的?
其次,在其他机器上安装sql server 的时候,在[组]下面鼠标右键单击,选择 [新建sqlserver注册] 根据向导,在可用的服务器当中,选择你安装sqlserver 数据库的服务器,直到完成!
win98要装个连接层,用type_mdac.exe
如果你要交给一个简单审查人(非用户),建议你将SQL数据库转成ACCESS,配置也非常简单,只要你将ACCESS放在同EXE相同的目录下,ADOCONNECTIONSTRING中访问手工删掉文件名的目录信息段,编译后即可)。
如果要交付使用,也建议通过ACCESS做转换数据库,到用户处仍用导入功能导入,但也有问题是你的程序访问的主机名不同,你需要在配置文件中加入访问SQL的主机名或IP,在程序开始运行时动态生成CONN STINRG,替换掉主机名或IP;
例如我的一个通用数据库查看器就有一个STRING 编辑器位置
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=lh;Initial Catalog=JXGLCJK;Data Source=DEAN
其中,你要改动的有 JXGLCJK 和 DEAN 两处
程序直接使用wise,install shell 之类的软件发布就可以了;
数据库的话,你必须设计一个接口,动态配置连接ADOconnection,一般情况下供选择的有服务器名
名称,密码等信息!下面告诉你几个有用的函数
调用“数据链接属性”对话框?可以使用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;很多朋友在编写完成基于SQLServer的程序后对发布程序感到头疼,因为仅仅发布应用程序和BDE是不够的,必须安装SQLServer Client软件,难道还要提供一张SQLServer的光盘?下面jojo为大家介绍一个解决之道:
1.准备一份Install Shield Express,最好是2.01以上的版本,在Delphi的安装盘上有一个专用版本也可以用,按照制作一般程序安装盘的方法建立安装程序, 必须安装BDE和SQL LINKS.
2.在你的Windows\System下面找到以下几个文件(当然你的机器必须已经安装SQLServer):
Dbmssocn.dll TCP/IP 支持文件
Dbmsspxn.dll IPX 支持文件
Dbnmpntw.dll 命名管道支持文件
Ntwdblib.dll SQLServer核心文件(这个文件最重要)
3.在Fpecify Components and Files的Groups and Files中,将以上几个文件加入到Program Files中去.当然你也可以建立一个组,将这些文件拷贝到System目录中,不过jojo个人倾向于拷贝到安装目录,以便反安装的时候可以彻底的删除它们.
4.如果你的程序运行比较简单(比如只有一个网段)现在你已经大功告成了,但不幸的是大多数人的网络环境没有如此简单,下面还要修改注册表:
增加一个:hkey_local_machine_/software/Microsoft/MSSQLserver/CLIENT/db-lib,其中DSQUERY设定默认的连接协议,这里设定的是IPX,128.1.1.1则是专有的连接, 这里是设定一个连接名称为128.1.1的连接,使用TCP/IP协议,IP地址为128.1.1.1,你也可以把键名改成其他名称,只要与你的别名中SERVER NAME一项相同即可. 至此,你的安装盘已经做成,现在只需要Building一下就可以了.
如有三台电脑a,b,c,a和b装有SQL SEVER2000,如何在一个列表里显示a和b?: qiubolecn(来自差生市)
两个方法,一个是用
netenumserver它的servertype为SV_TYPE_SQLSERVER 二是用procedure TForm1.Button1Click(Sender: TObject);
var
SQLServer:Variant;
ServerList:Variant;
i,nServers:integer;
sRetValue:String;
begin
SQLServer := CreateOleObject('SQLDMO.Application');
ServerList:= SQLServer.ListAvailableSQLServers;
nServers:=ServerList.Count;
for i := 1 to nservers do
ListBox1.Items.Add(ServerList.Item(i));
SQLServer:=NULL;
serverList:=NULL;
end;