我无法通过任何方式从Delphi XE Professional中访问任何数据库。访问数据库的意思是:
修改:
SORTED !!
核心问题是与数据库的通信,特别是IDE生成的通信以及使用驱动程序构建的任何代码都存在问题。
混淆和屏蔽子问题是:
结束编辑:
尝试了方法:
答案 0 :(得分:3)
Delphi Professional不支持使用Delphi附带的本机dbExpress驱动程序的Firebird。您需要Delphi的Enterprise或Architect版本才能使本机firebird dbExpress驱动程序正常工作。
我有Delphi 2010 Professional。我不想在E或A版本上花费额外的钱,但我没有阅读功能矩阵,因为Pro版本没有Firebird dbExpress驱动程序。
我找到了一些非常好的视频,展示了如何使用Delphi连接到Firebird。但是,当我尝试跟随我的专业版时,没有任何效果。
羞辱我并且更加羞辱Embarcadero因为大肆宣传Delphi支持Firebird的大胆打印,但没有提到你需要企业版或建筑师版,除非是小小的细则。
答案 1 :(得分:2)
BOUNTY AWARD
我已经将奖励授予了这个答案,因为它使我远离调查IDE,其安装和配置,以及调查与数据库的连接。
<强> END 强>
DK关于Firebird 64位 - 没有经验。但是我一直在使用dbExpress遇到很多麻烦。包含IB组件套件从未出现任何问题。但IB版本存在很多混淆......
但IMO最适合使用ADO('DBGo')组件,而不是任何专有IB或Delphi特定驱动程序。您需要的是IB的ADO提供商,可从@:
获得http://www.ibprovider.com/eng/ - 正如其他人所说的那样,避免使用localhost,使用127.0.0.1,或者更好,确定工作站的真实IP地址(ping机器名...)你确定你没有可能涉及的某种防火墙或内部保护?
您还需要确保您的IB连接配置正确 - 本地或TCP,不,请不要为您的姓名,pwrds等使用引号。您收到的错误消息似乎表明您正在尝试通过TCP进行连接,但未正确配置。它工作的时间和不工作的时间之间发生了什么?关闭德尔福?重启机器?请解释....
不需要“特殊权限” - 您只需确保正确安装和配置数据库服务器和客户端。在功能方面,您可以使用专业版进行所有操作 - 只是驱动程序等不包含在软件包中。
再次,IMO去寻找ADO,你永远不会回头。
HTH, MNG
答案 2 :(得分:2)
我现在可以编写代码来访问IDE中的Firebird。我有(限制但足够)访问IDE中的驱动程序。具体来说,驱动程序出现在数据资源管理器中,可用于生成SQLConnection(dbExpress组件)的默认值。可以在Object Inspector中访问和使用它们。下面引用的IDE错误的解决方法对于确保通信参数正确是必要的。编写数据库代码时,需要在dbExpress驱动程序的源代码中进行编译。
以下代码是建立和测试数据库连接所必需的最小参数集:
unit Unit2;
interface
uses Classes, SqlExpr, Dialogs, dbxDevartInterbase;
var SQLConnection1 : TSQLConnection;
implementation
{$R *.dfm}
begin
SQLConnection1 := TSQLConnection.Create(nil);
with SQLConnection1 do
begin
ConnectionName := 'TestConnection';
DriverName := 'DevartInterBase';
LibraryName := 'dbexpida40.dll';
VendorLib := 'fbclient.dll';
GetDriverFunc := 'getSQLDriverInterBase';
Params.Clear;
Params.Add('User_Name=SYSDBA');
Params.Add('Password=masterkey');
Params.Add('Database=localhost:C:\Program Files\Firebird\Firebird_2_5\examples\empbuild\employee.fdb');
Open;
If Connected then ShowMessage('Connection is active');
Free;
end;
end.
#{3}}在Codegear论坛上提供的解决方法是:
诀窍是选择一个 ConnectionName值,然后将 为Driver属性赋值 以及所有其他属性 LibraryName,VendorLib和 GetDriverFunc。
然后,根据需要进行更改 驱动程序的子属性 属性,最后清除名称 驱动程序属性。
这将留下您的所有更改 Params列表(你也可以 如果你愿意,可以手动编辑。)
注意:保留ConnectionName集 - 如果你清楚那个参数 将被清除。
现在您可以编译您的应用程序了 并在不需要的情况下部署它 dbxdrivers.exe或dbxconnections.ini (但您需要部署DLL 在LibraryName和。中指定 VendorLib,当然)。
还要确保将LoginPrompt设置为 False并离开LoadParamsOnConnect 设置为False。
答案 3 :(得分:1)
您是否通过Borland数据库引擎(BDE)和相关组件尝试了Paradox:TTable
TQuery
TStoredProc
TDatabase
和TSession
?
如果内存正确地为我服务,至少可以追溯到Delphi 3,“专业”版本和“更高级别”版本之间的区别因素就是“开箱即用”的数据库开发类型。
?* 请注意,我可能会误解这些版本的确切命名。大约在那个时候,我形成了这样的观点,即Borland只是提出了“更宏大”的名字,以便为那些并没有真正提供与“重大支持 - 写作 - CIO们”相信的好处的功能收取更多费用 - 让开发人员处理后果。 (是的,我有来自Midas I的战斗伤痕。)
除此之外,理论是......
如果一个人开始入门级数据库开发,你会购买Delphi吗?专业的。通过 BDE ,针对基于文件的数据库或 Interbase 开发您的系统。
如果您以后需要扩展:您将升级Delphi,购买您选择的SQL RDBMS,通过TDatabase
组件切换连接,并应用一些必要的调整。
注意:在Delphi 3中,您可以切换到Native Interbase(个人不推荐)或使用第三方组件进行非Midas开发。从Delphi 4开始,ADO和DevExpress开始受到更多关注,而现在,BDE似乎已经被遗忘了。
当然理论&amp;练习很少频繁出现相同的酒吧。但是,通过一些警示性指针,您应该能够开发出一个基于文件的重要解决方案,可以相对轻松地进行升级。
TTable
- BDE使用TTable
执行很多有趣的背景事务,并且行为可能因驱动程序和平台而异。免责声明:所有这些都是很久以前的事了,所以有些细节可能有点粗略 免责声明2:我对Delphi XE没有任何专业经验。我目前专业使用D5,以我个人身份使用D2009。