WEB开发网
开发学院数据库MSSQL Server Win98对等网SQL ODBC配置 阅读

Win98对等网SQL ODBC配置

 2007-11-11 04:17:45 来源:WEB开发网   
核心提示: 具体做法是,在窗体上放置两个单选钮(rbtn_server、rbtn_local)和两个文本框(edt_Server、edt_database),Win98对等网SQL ODBC配置(2),单选钮用来选择数据库是存放在服务器还是在本地,文本框用来输入服务器名称和数据库名称,从reg3.txt中可以很明显的找到所需要的

  具体做法是,在窗体上放置两个单选钮(rbtn_server、rbtn_local)和两个文本框(edt_Server、edt_database),单选钮用来选择数据库是存放在服务器还是在本地,文本框用来输入服务器名称和数据库名称。若数据库存放在服务器上,则服务器名称文本框激活;若是在本地,则处于失活状态。 至于注册表中具体要写入那些项,可以这样做。先在控制面板ODBC DateSource中配置一个sql server(WINDOWS平台上强大的数据库平台)数据源,然后在注册表编辑器中利用查找功能查找该数据源,将查找到的主键、键值和数据,在程序中写入注册表即可。这样做好的配置有时会有一些问题,因为sql server(WINDOWS平台上强大的数据库平台)数据源配置时选择的缺省协议是Named Pipe,而采用Win98对等网连接sql server(WINDOWS平台上强大的数据库平台)桌面版则需使用TCP/IP协议。如果采用应用程序配置好ODBC数据源后,还需要手工调整连接协议,那就不大合适了。但如何找到该选择项的注册表键值呢?显然采用查找的办法是不行了,这就得用到本文前面所说是比较注册表的方法了。先用控制面板将sql server(WINDOWS平台上强大的数据库平台)数据源配成Named Pipe协议,导出一个注册表文件reg1.reg,再配成TCP/IP协议,导出另一个注册表文件reg2.reg,用Command /c fc d:\ reg1.reg d:\ reg2.reg > d:\ reg3.txt得到比较结果。从reg3.txt中可以很明显的找到所需要的注册表键值,即:

HKEY_LOCAL_MACHINE\ SOFTWARE\microsoft\mssql(WINDOWS平台上强大的数据库平台)Server\Client\ConnectTo下
"DSQUERY"="DBMSSOCN"
"."="DBNMPNTW,\\\\.\\pipe\\sql\\query"

  和

"DSQUERY"="DBMSSOCN"
"."="DBMSSOCN,.,1433"(本地)或
" servername "="DBMSSOCN,servername,1433"(servername服务器)

  说到这里,一个完整的sql server(WINDOWS平台上强大的数据库平台) ODBC数据源就大功告成了。
  
  附源程序于后:

procedure Tfrm_main.btn_ODBCConfClick (Sender: TObject);
 var
  RegF: TRegistry;
  AliasName: string;
  AliasPara: string;
  mybuffer : pchar;
  x: longint;
  mysyspath: string;
  myservername: string;
  myservernameVal: string;
 begin
  try //配置ODBC yy为ODBC数据源名称
  RegF := TRegistry.Create ;
 try
  RegF.RootKey := HKEY_LOCAL_MACHINE;
 begin
  RegF.OpenKey('SOFTWARE\ODBC\ODBC.INI\yy',true);
  RegF.Writestring('AnsiNPW', 'No');
  RegF.Writestring('Database', trim(edt_database.text));
  RegF.Writestring('Description', '医疗保健信息综合管理系统');
 try //得到sqlsrv32.dll路径
  mybuffer := allocmem(255);
  x := GetSystemDirectory(mybuffer, 255);
  mysyspath := string(mybuffer);
  freemem(mybuffer);
  mysyspath := mysyspath+'\sqlsrv32.dll';
 except
  mysyspath := 'C:\WINDOWS\SYSTEM\sqlsrv32.dll';
 end;
 RegF.Writestring('Driver', mysyspath);
 RegF.Writestring('LastUser', 'Sa');
 RegF.Writestring('QuotedId', 'No');
 if rbtn_server.Checked = true then
  begin
   myservername := trim(edt_server.text);
  end
 else
  begin
   myservername := '(local)';
  end;
 RegF.Writestring('Server', myservername);
 RegF.Closekey;
 RegF.OpenKey('SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources', true);
 RegF.Writestring('yy', 'sql server(WINDOWS平台上强大的数据库平台)');
 RegF.Closekey;
 RegF.OpenKey('SOFTWARE\microsoft\mssql(WINDOWS平台上强大的数据库平台)Server\Client\ConnectTo', true);
 if rbtn_server.Checked = true then
  begin
   myservername := trim(edt_server.text);
  end
 else
  begin
   myservername := '.';
  end;
   myservernameVal := 'DBMSSOCN,'+myservername+',1433';
   RegF.Writestring(myservername, myservernameVal);
  end;
 finally
  RegF.Closekey;
  RegF.Free ;
  Application.MessageBox('配置ODBC成功!', '配置ODBC', MB_ICONINFORMATION +MB_OK);
 end;
 except
  Application.MessageBox('配置ODBC不成功!', '配置ODBC', MB_ICONINFORMATION+MB_OK);
 end;
end;

上一页  1 2 

Tags:Win 对等 SQL

编辑录入:coldstar [复制链接] [打 印]
赞助商链接