我想实现用我同学的机器做SQL数据库服务器,,在我的机器上连接他的数据库,
只要输入数据库服务器的IP或计算机名字,然后选择数据库名字,,就能连接我同学的SQL数据库,,请问怎么实现???或是哪里有这样的源代码下载,,我找了好多源代码,可都不是这种的。
只要输入数据库服务器的IP或计算机名字,然后选择数据库名字,,就能连接我同学的SQL数据库,,请问怎么实现???或是哪里有这样的源代码下载,,我找了好多源代码,可都不是这种的。
解决方案 »
- TStringlist.count 一个奇怪现象?
- delphi 可否完全控制 excel
- 100请教一个问题:怎样取得activeform 和activecompenet?
- 一台机器连两台打印机,程序如何控制. 急急急!!!
- shgetfileinfo是什么函数,怎么一下多了两个线程
- TrackBar控件中怎么控制最后鼠标拖拽格?
- 一个准程序员过渡到真程序员,需要哪些条件?欢迎各位加入讨论.
- 关于在程序中发送电子邮件附件的问题
- [重新整理错误]WIN7+DELPHI7+第三方控件编译出来的程序,运行后就出错
- 强制Delphi显示四位年份为何无效
- ADODataSet对象 用Open的时候出错 有哪些原因呀?
- 大家觉得二次开发与做项目的区别在哪,收集意见
如果用TADOConnection按你输入的IP和用户,口令生成ConnectionString
程序的datamoudle里读取此字符串,就行了
在ConnectionString里声名数据源
或者
//////////////////////////////////////////////////////////////////
// Function: adoconnection
// 连接 TADOConnection
// Parameters: conn 待连接的adoconnect控件名
// userid 用户名
// password 用户密码
// initcatalog 数据库名称
// datasource 服务器名称
// Result: 连接是否成功
// By: kkkkkkkkkkkkk
//////////////////////////////////////////////////////////////////function adoconnection(Conn: TADOConnection; UserId, Password, Initcatalog,
DataSource: string): boolean;
var
ConnString: string;
begin
try
Conn.close;
ConnString := 'Provider=SQLOLEDB.1';
ConnString := connstring + ';Persist Security Info=False';
ConnString := connstring + ';User ID=' + userid;
ConnString := connstring + ';Initial Catalog=' + initcatalog;
ConnString := connstring + ';Data Source=' + datasource;
Conn.KeepConnection := true;
Conn.loginprompt := false;
Conn.ConnectionString := connstring;
Conn.Open(userid, password);
result := true;
except
result := false;
end;
end;
adoconection 用到了ODBC呀,,我的确是用adoconection连接到了我同学的机器,可我把程序拿到其他人的机器上,,就连接不上拉,,,只能在我机器上用??请问为什么??
----------不要用ODBC,用连接字符串,
adoconection。ConnectionString :=‘Provider=SQLOLEDB.1;Password=1;Persist Security Info=True;User ID=sa;Initial Catalog=数据库名;Data Source=数据库服务器名(或IP)’
我这里也碰到过这种问题。最后改成access数据库了郁闷中。
http://www.connectionstrings.com/你可以调用数据库连接属性对话框:var cs:string;
procedure Tform.Button1Click(Sender: TObject);
begin
cs:=PromptDataSource(Application.Handle,'');
AdoConnect.connectionstring:=cs;
end;
--------------------------------------------------------------
username和password是你同学机器上的帐号密码,不能照抄!
TO:wujiabao(wjb) 能传给我吗???谢谢拉!!!!非常感谢!!
TO: thunderniao(寒冷的火) 帐号密码是他的,,这个我知道。
2:将两台机器的防火墙都关掉。
连接master库
select * from sysdatabases
name字段就是库中的所有数据库名
连接目标数据库
select * from sysobject where type = u(u 就是用户表)
name字段就是表名
select * from syscolumns,sysobject where syscolumns.id = sysobject.id
name字段就是字段名
怎么添加到combox里就不用我说了吧??
=================================
用了AdoConnection还用ODBC干嘛????
SysUtils, Classes, DB, ADODB,Forms,inifiles;type
TQxDataModule = class(TDataModule)
ADOConnection1: TADOConnection;
CompQuery: TADOQuery;
procedure DataModuleCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
QxDataModule: TQxDataModule;implementation
function getadoconnectstring(lstruser, lstrpwd: Pchar; pLoginStr: Pchar): Boolean;
const LOCINIFILE='server.ini' ;
var strconnect:string;
strappdir:string;
lstrdatasource:string;
InitialCatalog:string;
ini:tinifile;
begin
Result:=False;
strappdir := ExtractFilePath(Application.ExeName);
if strappdir = '' then
Begin
StrPCopy(pLoginStr,'');
Result:=True;
Exit;
End;
if (fileexists(strappdir + LOCINIFILE)) then //strappdir + LOCINIFILE
begin
ini := TIniFile.Create(strappdir + LOCINIFILE);
lstrdatasource := ini.readstring('dbconnect','datasource','');
InitialCatalog := ini.readstring('dbconnect','initial catalog','');
strconnect := '';
strconnect := strconnect + 'Provider=SQLOLEDB.1;';
strconnect := strconnect + 'password=';
strconnect := strconnect + strpas(lstrpwd);
strconnect := strconnect + ';persist Security Info=True;';
strconnect := strconnect + 'User ID=';
strconnect := strconnect + StrPas(lstruser);
strconnect := strconnect + ';Initial Catalog=';
strconnect := strconnect + InitialCatalog;
strconnect := strconnect + ';Data Source=';
strconnect := strconnect + lstrdatasource;
StrPCopy(pLoginStr,strconnect);
Result:=True;
end;
end;
//============================================================================//
procedure DBConnect;
const LOCINIFILE='server.ini' ;
var pLoginStr:pchar;
ini:tinifile;
strappdir:string;
yhms,mimas:string;
yhm:Pchar;
mim:Pchar;
begin
yhm:=strAlloc(20*SizeOf(char));
mim:=strAlloc(20*SizeOf(char)); strappdir := ExtractFilePath(Application.ExeName);
ini := TIniFile.Create(strappdir + LOCINIFILE);
yhms:=ini.readstring('dbconnect','user','');
strpcopy(yhm,yhms);
mimas:=ini.readstring('dbconnect','pswd','');
strpcopy(mim,mimas);
pLoginStr:=StrAlloc(200);
getadoconnectstring(yhm,mim,pLoginStr);
QxDataModule.ADOConnection1.ConnectionString:=StrPas(pLoginStr);
QxDataModule.ADOConnection1.Connected:=true;
StrDispose(pLoginStr);
end;{$R *.dfm}procedure TQxDataModule.DataModuleCreate(Sender: TObject);
begin
DBConnect;
end;end.