2010년 5월 25일 화요일

Delphi - ODBC Create

Sample1

 

const
ODBC_ADD_DSN=1;
ODBC_CONFIG_DSN=2;
ODBC_REMOVE_DSN=3;
ODBC_ADD_SYS_DSN=4;
ODBC_CONFIG_SYS_DSN=5;
ODBC_REMOVE_SYS_DSN=6;
ODBC_REMOVE_DEFAULT_DSN=7;

function SQLConfigDataSource(HwndParent:HWND;FRequest:WORD;Driver:PChar;
                             Attributes:Pchar):boolean;Stdcall;

function SQLWriteDSNToIni(DSN: PChar;Driver: PChar):Boolean stdcall;
function SQLRemoveDSNFromIni(DSN: PChar):Boolean stdcall;

implementation

{$R *.dfm}


function SQLConfigDataSource;external 'odbccp32.dll' name 'SQLConfigDataSource';
function SQLWriteDSNToIni;external 'odbccp32.dll' name 'SQLWriteDSNToIni';
function SQLRemoveDSNFromIni;external 'odbccp32.dll' name 'SQLRemoveDSNFromIni';

procedure TForm1.Button1Click(Sender: TObject);
begin
  if SQLRemoveDSNFromIni('TA') then
  begin
    SQLWriteDSNToIni('TA', 'SQL Server');
    SQLConfigDataSource(0, ODBC_CONFIG_DSN,
                        PChar('SQL Server'),
    // add other params to the last one here:
                        PChar('DSN=TA'+ #0 +
                              'Server=(local)'+ #0#0));
  // to remove the one that you created, use this code:
  // SQLRemoveDSNFromIni('TA');
end;

 

 

 

Sample2

 

const
 
ODBC_ADD_DSN = 1;
// Add data source
 
ODBC_CONFIG_DSN = 2;
// Configure (edit) data source
 
ODBC_REMOVE_DSN = 3;
// Remove data source
 
ODBC_ADD_SYS_DSN = 4;
// add a system DSN
 
ODBC_CONFIG_SYS_DSN = 5;
// Configure a system DSN
 
ODBC_REMOVE_SYS_DSN = 6;
// remove a system DSN
 
ODBC_REMOVE_DEFAULT_DSN = 7;
// remove the default DSN

function SQLConfigDataSource(hwndParent: HWND;
  fRequest: Word;
  lpszDriver: LPCSTR;
  lpszAttributes: LPCSTR): BOOL; stdcall; external 'ODBCCP32.DLL';

function CreateDB(const Database: string): Boolean;
begin
 
Result := SQLConfigDataSource(0, ODBC_ADD_DSN,
    'Microsoft Access Driver (*.mdb)', PChar('CREATE_DB=' + Database + ' General'#0));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 
CreateAccessDatabase('c:\Testdb.mdb');
end;

댓글 없음:

댓글 쓰기