【问题标题】:Delphi and Interbase: username and password not defined?Delphi 和 Interbase:未定义用户名和密码?
【发布时间】:2016-06-07 09:13:31
【问题描述】:

我最近遇到了遗留代码(Delphi 2007)。有一个 SYSTEM.IB 文件,而我认为它是数据库文件。

程序大致如下:

ibSys: TIBDatabase;

// The following will throw exception username and password are not defined.
// Ask your database admin to set up an InterBase login
procedure TNHP_CommonDB.IB_SystemOpen(Apath: string):
begin
  ibSys.DatabaseName := Apath + '\SYSTEM.IB';
  try
    ibSys.Open;
  except
    raise;
  end;
end;

我认为默认用户名是sysdba,默认密码是masterkey。我在没有更改默认密码的情况下安装了 Interbase。

那么我应该如何处理这个异常呢?

谢谢。

【问题讨论】:

  • 好吧,你可以从阅读文档开始,它会告诉你如何设置用户名和密码。
  • 问题是,程序源代码没有提供用户名/密码,我应该改成什么用户名/密码?在没有仔细阅读问题的情况下将其设为 -1 纯粹是无知的。
  • 我确实读过这个问题。你说我应该如何处理这个异常?,答案是提供正确的用户名和密码。您没有问如果密码不是默认密码,我如何找出密码?,这就是您的评论所暗示的。我根据他们所说的话对问题进行投票,而不是根据您要问的问题。约翰显然和我读的一样,因为他还告诉你如何设置用户名和密码。
  • 我的问题实际上是问如何解决它,是设置Interbase的用户名/密码,还是在源代码中添加用户名/密码,或者你知道它为什么会发生(为什么原始代码没有'没有添加用户名/密码,但原始源代码应该可以工作)?
  • 您的问题包含 6 行代码(在 begin..end 之间),其中四行是 try except raise; end;。您希望我们如何知道该代码的工作原理或设置用户/密码的位置,或者它期望的用户/密码?您可以使用完整的源代码来解决这个问题 - 您希望我们如何在没有可用信息的情况下做到这一点?阅读文档 - 它准确地告诉您如何为 Interbase 指定用户名和密码。当然,您必须知道要提供的用户名和密码。我们不是教程网站,也不是通灵者。

标签: delphi interbase


【解决方案1】:

docwiki for TIBDatabase 中有明确记录:

user_namepasswordparams property 中设置。

 IBDatabaseInstance.Params.Clear; // 清除任何先前设置的参数。
    IBDatabaseInstance.Params.Add('user_name=SYSDBA');
    IBDatabaseInstance.Params.Add('password=masterkey');

【讨论】:

  • 谢谢它的工作,但我只是不明白为什么原始源代码没有设置用户名密码但它应该可以工作?我用的是delphi 2007和interbase 2007(原源代码也用了同一个版本)。
猜你喜欢
  • 2011-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多