델파이를 이용해서 셋업 프로그램을 만들었습니다.
파일 카피하고. 레지스트리 변경하고 odbc파일들 카피해서
다 문제없이 진행되었는데, 한가지가 안되는군요..
참고로 원프로그램은 파워빌더(mdb사용)입니다.
셋업 다 하고..실행할 파일누르면 데이타베이스를 연결할 수 없습니다.라고
나오네요.. 제어판에서 odbc데이터원본을 보면 데이터소스를 예를 들어
aaa라고 만들었으면 생성이 되어있습니다.
파워빌더 화면에서 보면 db profiles부분에 odbc에 데이터소스
aaa를 사용하는 거를 만들어야 할꺼 같은데 델파이에서 가능할꺼 같은데
모르겠네요 ㅡㅡ
레지스트리를 뒤져봐도.. 그부분은 안나오는거 같아서..
질문이 난잡해서 이해가 잘 안가시더라도 답변좀 부탁합니다.
Subject
ADO를 이용하여 동적으로 odbc의 알리아스를 생성하는 방법
다음과 같이 하시면 됩니다...
참고하시기 바랍니다....^^
ADOConnection2.Connected := False;
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey('SOFTWAREODBCODBC.INIodbc Data Sources', True) then
Reg.WriteString('SQLTEST','SQL Server');{'ADO_TEST' <-- odbc Alias}
if Reg.OpenKey('SoftwareODBCodbc.INISQLTEST', True) then begin
Reg.WriteString ('DATABASE','Pubs');
Reg.WriteString ('DBQ','Pubs');
Reg.WriteString ('Description','SQLTEST');
Reg.WriteString ('Driver','C:WINNTSYSTEM32SQLSRV32.dll');
Reg.WriteInteger('DriverID',25);
Reg.WriteString ('FIL','SQLTEST');
Reg.WriteString ('LastUser','sa');
Reg.WriteInteger('SafeTransactions',0);
Reg.WriteString ('Server','SERVER');
Reg.WriteString ('UID','sa'); {사용자ID}
Reg.WriteString ('PWD',''); {PASSWORD}
end;
if Reg.OpenKey('SOFTWAREODBCodbc.INISQLTESTEnginesJet', True) then begin
Reg.WriteString ('ImplicitCommitSync','');
Reg.WriteInteger('MaxBufferSize',2048);
Reg.WriteInteger('PageTimeout',5);
Reg.WriteInteger('Threads',3);
Reg.WriteString ('UserCommitSync','Yes');
end;
finally
Reg.CloseKey;
Reg.Free;
end;
ADOConnection2.Connected := True;
이 소스를 약간 수정해서 odbc는 잡아줬습니다. 꼭 답변 부탁드립니다.