我正在使用Delphi 5版本,我想连接到Oracle数据库。我有TDatabase组件。 我对如何通过Delphi连接数据库一无所知。请提供连接数据库的步骤。谢谢。
答案 0 :(得分:2)
TDatabase
组件是BDE (Borland Database Engine)
的一部分,这是一种弃用的技术,而是尝试使用另一种支持Oracle的替代方案,如ADO或Zeos
。有关ADO的介绍,请查看Embarcadero Docs。 Working with ADO Components
如果您选择Zeos,请查看Official documentation。
答案 1 :(得分:2)
这很有趣,我{分钟前几分钟}我的开源本机Oracle访问Delphi 5的端口。
以下是此单元的主要功能:
请参阅just finished。
你有一个TQuery
之类的包装器,就像编写BDE一样编写代码。
或者您可以这样编写代码:
procedure Test(Props: TOleDBConnectionProperties; const aName: RawUTF8);
var I: ISQLDBRows;
begin
I := Props.Execute('select * from Domain.Customers where Name=?',[aName]);
while I.Step do
writeln(I['Name'],' ',I.['FirstName'],' ',I['Address']);
end;
var Props: TOleDBConnectionProperties;
begin
Props := TSQLDBOracleConnectionProperties.Create(
'TnsName','UserName','Password',CODEPAGE_US);
try
Test(Props,'Smith');
finally
Props.Free;
end;
end;
不幸的是,Delphi 5不允许通过变体进行后期绑定,这在Delphi 6及更高版本中是允许的:
procedure Test(Props: TOleDBConnectionProperties; const aName: RawUTF8);
var I: ISQLDBRows;
Customer: Variant;
begin
I := Props.Execute('select * from Domain.Customers where Name=?',[aName],@Customer);
while I.Step do
writeln(Customer.Name,' ',Customer.FirstName,' ',Customer.Address);
end;
如果您真的想在RAD方法中使用数据库组件,请查看this web site for more details and feedback:
你会发现一些旧的免费组件,主要是在Oracle 8时创建的(SynDBOracle针对Oracle 11g进行了优化,但可以与早期版本的Oracle一起使用),但这可能更适合您在没有BDE的情况下对Oracle连接的需求。
当然,还有一些非常好的商业组件,仍在使用Delphi 5.但是你必须付出高昂的代价......顺便说一下,应该更好地升级到新的Delphi版本。 ;)
答案 2 :(得分:0)
如果您拥有Delphi 5企业版,则可以使用BDE和Oracle SQL Link连接到Oracle。这是从D5使用Oracle的最快方式。如果您拥有Professional版本,则可以使用Oracle通过ODBC使用BDE。企业版本也应该已经有了ADO组件,但在我的测试中,它是SQL链接的劣质解决方案,尽管如果你必须稍后移植到更新的Delphi版本,它仍然支持,而BDE和SQL链接是不
连接步骤详见帮助和手册。