如和判断两个Database的连接是否一致 --wrench求救(200分)

  • 主题发起人 主题发起人 wrench
  • 开始时间 开始时间
W

wrench

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么知道两个database的连接是否相等

就是说 如果有两个database,我怎么判断它们是否连接到相同的物理数据库上
 
wrench你用的什么数据库?现在多用ado了,比较方便的说
下面的例子是delphi带的,能够显示table所在目录。dataBase的我想也是要
从类似的BDE api下手
例子中提到一个BDE.hlp,我找了找没找到。今天经理坐镇催促手头的这个项目,
你自己先试着解决,下星期还没解决咱么再讨论
This example uses the DBHandle property to make a call to
the DbiGetDirectory BDE API function. Because it uses a BDE API
function directly, you must add uses BDE; in the implementation
section of the unit.

procedure TForm1.Button1Click(Sender: TObject);

var
Directory: String;
begin
SetLength(Directory, 250);
if DbiGetDirectory(Table1.DBHandle, True, PChar(Directory)) <> dbiErr_None then
MessageDlg('Error getting default directory', mtError, [mbOk], 0)
else
ShowMessage('Default directory = ' + Directory);

if DbiGetDirectory(Table1.DBHandle, False, PChar(Directory)) <> dbiErr_None then

MessageDlg('Error getting current working directory', mtError, [mbOk], 0)
else
ShowMessage('Current working directory = ' + Directory);
end;
 
只能帮你提前一下 :-p
 
千中元:
我用的BDE
要是一个Database用的别名,一个用的param连接到<strong>同一个</strong>数据库,
或者用两个不同的别名连接到 <strong>同一个</strong> 的数据库

怎么判断?
 
我有个笨办法!
判断前在其中一个数据库中建个临时表(起个一辈子也不会有人用的表名
)。用第二个去打开...
这样可以吗?呵呵
 
Pos(DataBase1.DataBasename, DataBase1.Params)
 
找到那个BDE32.hlp了 。在delphi的 shared
下面。应该是DbiGetDatabaseDesc
例:
ShowDatabaseDesc('IBLOCAL');

The procedure is defined as:

procedure ShowDatabaseDesc(DBName: string);

const
DescStr = 'Driver Name: %s'#13#10'AliasName: %s'#13#10 +
'Text: %s'#13#10'Physical Name/Path: %s';
var
dbDes: DBDesc;
begin
Check(DbiGetDatabaseDesc(PChar(DBName), @dbDes));
with dbDes do
ShowMessage(Format(DescStr, [szDbType, szName, szText, szPhyName]));
end;
 
老千 分是你的了
 
后退
顶部