2011-09-14 7 views
0

私はdelphi 7とoracleを使用しています。私はTADOConnectionを使ってdelphiを使って動的にoracleに接続したい。私は、サーバー名、ユーザー名、パスワード、および1つのボタン 'Connect'の3つの編集ボックスを含む1つのフォームを作成しました。 ConnectionStringを構築して静的に接続しようとしました。今私は、ユーザーがサーバー、ユーザー名とパスワードの値を入力するに応じて '接続'ボタンをクリックして接続しようとしています。 どうすればいいですか?助言がありますか。助けてくれてありがとう。デルファイのADOConnectionを使用してOracleデータベース接続を動的に

+0

私見では、より良い忘れるべきでなければなりませんOracleとのADO/OleDB接続の使用についてMicrosoftやOracleのプロバイダ、BLOBとパフォーマンスに関する深刻な問題があります。代わりにOCI通信を使用して、より軽量で高速なアクセスを実現します。 ODACや[Open Source classes](http://blog.synopse.info/post/2011/07/09/SynDBOracle%3A-Open-Source-native-Oracle-access)などの商用バージョンを参照してください。 –

答えて

0

あなたはConnectionStringsウェブサイト

から正しいものを得ることができ、TAdoConnectionコンポーネントのConnectionStringプロパティを変更する必要がありますがここでは、MicrosoftのプロバイダとのADO接続のための一つです:ユーザーID &パスワードについて

Provider =msdaora; Data Source =MyOracleDB; User Id =myUsername; Password =myPassword; 

それらをあなたの編集ボックスに置き換える必要があります。

更新:コードの

は、あなたがこのような何か書く:、(OracleのOLEDBを提供する)すでにOracleクライアントをインストールすることを想定し

AdoConnection.Close; 
AdoConnection.ConnectionString := format('Provider=msdaora; Data Source =MyOracleDB; User Id = %s; Password = %s',edtUserName.Text,edtPassword.Text]); 
'; 
AdoConnection.Open; 
+0

接続文字列の後にConnectionを開くには、ADOConnection.Connected:= trueを設定する必要があります。右?? – naren

+0

MS OracleプロバイダはOCI7のみをサポートしており、多くの点で制限があるため、使用しないでください。オラクル社ではOracle Providerを使用してください。 – oodesigner

+0

そして、AnyDACなどの3Dパーティライブラリを使用してOracleと連携する方がよい。 ADOはOracleの機能を制限しているためです。 – oodesigner

2

をなどの作業TNSNAMESを、持っているので、たとえば、パスワード「password」を持つユーザー「HR」としてインスタンス「ORCL」ログインに接続する場合、接続文字列は次のようになります。

プロバイダ= OraOLED B.Oracle.1;データソース= ORCL;ユーザー ID = HR;パスワード=パスワード

とコンポーネントから文字列を取って、それは次のようになります:

Procedure TForm1.Button1Click(Sender: TObject); 
begin 
    ADOConnection1.ConnectionString:= 'Provider=OraOLEDB.Oracle.1;' + 
    'Data Source=' + Edit1.Text + ';' + 
    'Data Source=' + Edit2.Text + ';' + 
    'Password=' + Edit3.Text; 
    ADOConnection1.LoginPrompt:= False; 
    ADOConnection1.Connected:= True; 
end; 
関連する問題