ODBC를 제어판에서 설정하지 않고 프로그램에서 생성시키려면 어떻게 해야 하나요?
감사합니다..
즐거운 하루 되세요.....
코딩으로 레지스트리에 등록해주는방법도 있습니다~
Var Reg:TRegistry;
ZString:String;
begin
ZString:=FilenameEdit1.Text; //-> 경로명
FilenameEdit1.Text:=Stringdel(ZString);
Reg := TRegistry.Create;
Try
Reg.RootKey := HKEY_CURRENT_USER;
Reg.DeleteKey('Software\ODBC\ODBC.INI\'+Edit1.Text); //-> 기존동일한 데이타 베이스 삭제
If Reg.OpenKey('\Software\ODBC\ODBC.INI\ODBC Data Sources', True) then Begin
Reg.WriteString(Edit1.Text,'Microsoft Access Driver (*.mdb)'); //-> Edit1.Text 데이타 베이스명
End;
If Reg.OpenKey('\Software\ODBC\ODBC.INI\'+Edit1.Text, True) then begin
Reg.WriteString ('DBQ',FilenameEdit1.Text);
Reg.WriteString ('Description',Edit1.Text);
Reg.WriteString ('Driver','C:\WINDOWS\SYSTEM\odbcjt32.dll');
Reg.WriteInteger('DriverId',25);
Reg.WriteString ('FIL','MS Access;');
Reg.WriteInteger('SafeTransactions',0);
Reg.WriteString ('UID','');
Reg.WriteString ('PWD','');
End;
If Reg.OpenKey('\Software\ODBC\ODBC.INI\'+Edit1.Text+'\Engines\Jet', 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;
MessageDlg('ODBC설정을 완료 하였습니다', mtInformation,[mbOk], 0);
End;
-------------------------------
출처는 http://blog.naver.com/bluedoumi?Redirect=Log&logNo=130080343420
델파이7으로 했을때 약간 수정을 해줬는데 겜방이라...
그리고 다음과 같이 내용을 쓰시고 실행을 하시면 됩니다.
델파이내에서는 텍스트 파일을 아래와 같이 작성하시고, 그냥 실행시켜버리시면 될 듯 싶군요.
REGEDIT4
[HKEY_CURRENT_USERSOFTWAREODBC]
[HKEY_CURRENT_USERSOFTWAREODBCODBC.INI]
[HKEY_CURRENT_USERSOFTWAREODBCODBC.INIODBC Data Sources]
"now"="SQL Server"
[HKEY_CURRENT_USERSOFTWAREODBCODBC.INInow]
"Description"=""
"Server"="sererDB" //서버이름
"UseProcForPrepare"="Yes"
"QuotedId"="Yes"
"AnsiNPW"="Yes"
"Database"="" //데이타베이스 이름
"OemToAnsi"="No"
"Trusted_Connection"=""
"LastUser"=""
김진호 wrote:
> ODBC를 제어판에서 설정하지 않고 프로그램에서 생성시키려면 어떻게 해야 하나요?
>
> 감사합니다..
>
> 즐거운 하루 되세요.....