2011-09-14 4 views
0

델파이 7과 오라클을 사용하고 있습니다. 델파이를 통해 TADOConnection을 사용하여 동적으로 oracle을 연결하려고합니다. 나는 서버 이름, 사용자 이름, 암호 및 하나의 버튼 '연결'을위한 3 개의 편집 상자가 들어있는 하나의 양식을 만들었습니다. 연결 문자열을 작성하여 정적으로 연결하려고했습니다. 이제 사용자가 서버, 사용자 이름 및 비밀번호에 값을 입력 할 때마다 '연결'버튼을 클릭하여 연결하려고합니다. 어떻게해야합니까? 어떤 제안. 도와 주셔서 감사합니다. 사용자 아이디 & 암호를델파이에서 ADOConnection을 사용하여 Oracle 데이터베이스 연결을 동적으로

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

:

+0

이럴 더 나은 잊지 말아야 오라클과 ADO/OleDB 연결 사용 BLOB 및 성능에 대한 Microsoft 또는 Oracle의 공급자에 심각한 문제가 있습니다. 대신 직접 OCI 통신을 사용하여 더욱 가볍고 빠른 액세스. ODAC 또는 [Open Source classes]와 같은 상용 버전을 참조하십시오 (http://blog.synopse.info/post/2011/07/09/SynDBOracle%3A-Open-Source-native-Oracle-access). –

답변

0

당신은 TAdoConnection 구성 요소의 ConnectionString 속성을 변경해야합니다, 당신은 ConnectionStrings 웹 사이트 여기

에서 바로 하나를 얻을 수 있습니다 마이크로 소프트 제공자와 ADO 연결을위한 하나 , 당신은 그들을 편집 상자로 대체해야합니다.

업데이트 : 코드에 대한

는이 같은 쓰기 : (오라클 OLEDB를 위해 제공) 이미 오라클 클라이언트를 설치하는 것으로 가정

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

OCI7 만 지원하며 여러 가지면에서 제한적이므로 MS Oracle 공급자는 사용하지 마십시오. Oracle 용 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; 
관련 문제