type USHORT = Word; SQLSMALLINT = SHORT; SQLRETURN = SQLSMALLINT; SQLINTEGER = Longint; SQLHANDLE = SQLINTEGER; SQLHENV = SQLHANDLE; SQLUSMALLINT = USHORT; SQLPCHAR = PChar;const // DLL名 odbc32 = 'odbc32.dll'; SQL_SUCCESS = 0; SQL_SUCCESS_WITH_INFO = 1; SQL_INVALID_HANDLE = -2; SQL_ERROR = -1; SQL_NO_DATA = 100; SQL_NO_DATA_FOUND = SQL_NO_DATA; SQL_FETCH_NEXT = 1; SQL_FETCH_FIRST_USER = 31; SQL_FETCH_FIRST_SYSTEM = 32; SQL_FETCH_FIRST = 2; SQL_MAX_DSN_LENGTH = 32;// SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_INVALID_HANDLE, SQL_ERROR function SQLAllocEnv(var EnvironmentHandle: SQLHENV): SQLRETURN; stdcall; external odbc32 name 'SQLAllocEnv';function SQLFreeEnv(EnvironmentHandle: SQLHENV): SQLRETURN; stdcall; external odbc32 name 'SQLFreeEnv';// SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR, SQL_INVALID_HANDLE. function SQLDrivers( EnvironmentHandle: SQLHENV; Direction: SQLUSMALLINT; DriverDescription: SQLPCHAR; BufferLength1: SQLSMALLINT; var DescriptionLengthPtr: SQLSMALLINT; DriverAttributes: SQLPCHAR; BufferLength2: SQLSMALLINT; var AttributesLengthPtr: SQLSMALLINT): SQLRETURN; stdcall; external odbc32 name 'SQLDrivers';// SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR, SQL_INVALID_HANDLE. function SQLDataSources( EnvironmentHandle: SQLHENV; Direction: SQLUSMALLINT; ServerName: SQLPCHAR; BufferLength1: SQLSMALLINT; var NameLength1Ptr: SQLSMALLINT; Description: SQLPCHAR; BufferLength2: SQLSMALLINT; var NameLength2Ptr: SQLSMALLINT): SQLRETURN; stdcall; external odbc32 name 'SQLDataSources';//底下这个过程就能取得电脑上ODBC的所有连接 procedure TMainDataModule.GetODBC; const BUF_MAX = 1024; var LEnvironmentHandle: SQLHENV; LDriverDescription: array[0..BUF_MAX] of Char; LDescriptionLengthPtr: SQLSMALLINT; LDriverAttributes: array[0..BUF_MAX] of Char; AttributesLengthPtr: SQLSMALLINT; LReturn: SQLRETURN; LText: String; begin try if (SQLAllocEnv(LEnvironmentHandle) = SQL_ERROR) then Exit; try FillChar(LDriverDescription, SizeOf(LDriverDescription), 0); FillChar(LDriverAttributes, SizeOf(LDriverAttributes), 0); LReturn := SQLDrivers(LEnvironmentHandle, SQL_FETCH_FIRST, LDriverDescription, BUF_MAX + 1, LDescriptionLengthPtr, LDriverAttributes, BUF_MAX + 1, AttributesLengthPtr); while (LReturn <> SQL_NO_DATA_FOUND) do begin LText := String(LDriverDescription); if Pos('MySQL ODBC',LText) > 0 then begin MySQLODBC := LText; Exit; end; FillChar(LDriverDescription, SizeOf(LDriverDescription), 0); FillChar(LDriverAttributes, SizeOf(LDriverAttributes), 0); LReturn := SQLDrivers(LEnvironmentHandle, SQL_FETCH_NEXT, LDriverDescription, BUF_MAX + 1, LDescriptionLengthPtr, LDriverAttributes, BUF_MAX + 1, AttributesLengthPtr); end; finally SQLFreeEnv(LEnvironmentHandle); end; except on E:Exception do Exit; end; end;
再给你看个例子吧unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } function BreakList(const ANullTerminateText: array of Char): String; end; type USHORT = Word; SQLSMALLINT = SHORT; SQLRETURN = SQLSMALLINT; SQLINTEGER = Longint; SQLHANDLE = SQLINTEGER; SQLHENV = SQLHANDLE; SQLUSMALLINT = USHORT; SQLPCHAR = PChar;const // DLL名 odbc32 = 'odbc32.dll'; SQL_SUCCESS = 0; SQL_SUCCESS_WITH_INFO = 1; SQL_INVALID_HANDLE = -2; SQL_ERROR = -1; SQL_NO_DATA = 100; SQL_NO_DATA_FOUND = SQL_NO_DATA; SQL_FETCH_NEXT = 1; SQL_FETCH_FIRST_USER = 31; SQL_FETCH_FIRST_SYSTEM = 32; SQL_FETCH_FIRST = 2; SQL_MAX_DSN_LENGTH = 32;// SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_INVALID_HANDLE, SQL_ERROR function SQLAllocEnv(var EnvironmentHandle: SQLHENV): SQLRETURN; stdcall; external odbc32 name 'SQLAllocEnv';function SQLFreeEnv(EnvironmentHandle: SQLHENV): SQLRETURN; stdcall; external odbc32 name 'SQLFreeEnv';// SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR, SQL_INVALID_HANDLE. function SQLDrivers( EnvironmentHandle: SQLHENV; Direction: SQLUSMALLINT; DriverDescription: SQLPCHAR; BufferLength1: SQLSMALLINT; var DescriptionLengthPtr: SQLSMALLINT; DriverAttributes: SQLPCHAR; BufferLength2: SQLSMALLINT; var AttributesLengthPtr: SQLSMALLINT): SQLRETURN; stdcall; external odbc32 name 'SQLDrivers';// SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR, SQL_INVALID_HANDLE. function SQLDataSources( EnvironmentHandle: SQLHENV; Direction: SQLUSMALLINT; ServerName: SQLPCHAR; BufferLength1: SQLSMALLINT; var NameLength1Ptr: SQLSMALLINT; Description: SQLPCHAR; BufferLength2: SQLSMALLINT; var NameLength2Ptr: SQLSMALLINT): SQLRETURN; stdcall; external odbc32 name 'SQLDataSources';var Form1: TForm1;implementation{$R *.dfm}function TForm1.BreakList(const ANullTerminateText: array of Char): String; var LStart: Integer; LBuffer: array[0..255] of Char; LText: String; begin LStart := 0; LText := ANullTerminateText; Result := LText; Inc(LStart, Length(LText) + 1); while (True) do begin FillChar(LBuffer, SizeOf(LBuffer), 0); Move(ANullTerminateText[LStart], LBuffer, SizeOf(LBuffer)); LText := LBuffer; Inc(LStart, Length(LText) + 1); if (LText = '') then Break; Result := Result + ',' + AnsiQuotedStr(LText, '"'); end; end;procedure TForm1.Button1Click(Sender: TObject); const BUF_MAX = 1024; var LEnvironmentHandle: SQLHENV; LDriverDescription: array[0..BUF_MAX] of Char; LDescriptionLengthPtr: SQLSMALLINT; LDriverAttributes: array[0..BUF_MAX] of Char; AttributesLengthPtr: SQLSMALLINT; LReturn: SQLRETURN; LText: String; begin Memo1.Clear(); try if (SQLAllocEnv(LEnvironmentHandle) = SQL_ERROR) then Exit; try FillChar(LDriverDescription, SizeOf(LDriverDescription), 0); FillChar(LDriverAttributes, SizeOf(LDriverAttributes), 0); LReturn := SQLDrivers(LEnvironmentHandle, SQL_FETCH_FIRST, LDriverDescription, BUF_MAX + 1, LDescriptionLengthPtr, LDriverAttributes, BUF_MAX + 1, AttributesLengthPtr); while (LReturn <> SQL_NO_DATA_FOUND) do begin LText := String(LDriverDescription);// + '/' + BreakList(LDriverAttributes); Memo1.Lines.Add(LText); FillChar(LDriverDescription, SizeOf(LDriverDescription), 0); FillChar(LDriverAttributes, SizeOf(LDriverAttributes), 0); LReturn := SQLDrivers(LEnvironmentHandle, SQL_FETCH_NEXT, LDriverDescription, BUF_MAX + 1, LDescriptionLengthPtr, LDriverAttributes, BUF_MAX + 1, AttributesLengthPtr); end; finally SQLFreeEnv(LEnvironmentHandle); end; except on E:Exception do Memo1.Lines.Add(E.Message); end; end;procedure TForm1.Button2Click(Sender: TObject); const BUF_MAX = 1024; var LEnvironmentHandle: SQLHENV; LServerName: array[0..SQL_MAX_DSN_LENGTH] of Char; LNameLength1Ptr: SQLSMALLINT; LDescription: array[0..BUF_MAX] of Char; LNameLength2Ptr: SQLSMALLINT; LReturn: SQLRETURN; LText: String; begin Memo1.Clear(); try if (SQLAllocEnv(LEnvironmentHandle) = SQL_ERROR) then Exit; try FillChar(LServerName, SizeOf(LServerName), 0); FillChar(LDescription, SizeOf(LDescription), 0); LReturn := SQLDataSources(LEnvironmentHandle, SQL_FETCH_FIRST, LServerName, SQL_MAX_DSN_LENGTH + 1, LNameLength1Ptr, LDescription, BUF_MAX + 1, LNameLength2Ptr); while (LReturn <> SQL_NO_DATA_FOUND) do begin LText := String(LServerName) + '/' + BreakList(LDescription); Memo1.Lines.Add(LText); FillChar(LServerName, SizeOf(LServerName), 0); FillChar(LDescription, SizeOf(LDescription), 0); LReturn := SQLDataSources(LEnvironmentHandle, SQL_FETCH_NEXT, LServerName, SQL_MAX_DSN_LENGTH + 1, LNameLength1Ptr, LDescription, BUF_MAX + 1, LNameLength2Ptr); end; finally SQLFreeEnv(LEnvironmentHandle); end; except on E:Exception do Memo1.Lines.Add(E.Message); end; end;end.
上面的程序在我电脑上的运行结果: Button1Click: SQL Server Microsoft Access Driver (*.mdb) Microsoft Text Driver (*.txt; *.csv) Microsoft Excel Driver (*.xls) Microsoft dBase Driver (*.dbf) Microsoft Paradox Driver (*.db ) Microsoft Visual FoxPro Driver Microsoft FoxPro VFP Driver (*.dbf) Microsoft dBase VFP Driver (*.dbf) Microsoft Access-Treiber (*.mdb) Microsoft Text-Treiber (*.txt; *.csv) Microsoft Excel-Treiber (*.xls) Microsoft dBase-Treiber (*.dbf) Microsoft Paradox-Treiber (*.db ) Microsoft Visual FoxPro-Treiber Driver do Microsoft Access (*.mdb) Driver da Microsoft para arquivos texto (*.txt; *.csv) Driver do Microsoft Excel(*.xls) Driver do Microsoft dBase (*.dbf) Driver do Microsoft Paradox (*.db ) Driver para o Microsoft Visual FoxPro Microsoft ODBC for Oracle MySQL ODBC 3.51 DriverButton2Click: MS Access Database/Microsoft Access Driver (*.mdb) Excel Files/Microsoft Excel Driver (*.xls) dBASE Files/Microsoft dBase Driver (*.dbf) _iamp/MySQL ODBC 3.51 Driver Xtreme Sample Database 2005 CHS/Microsoft Access Driver (*.mdb) QT_Flight32/Microsoft Access Driver (*.mdb) LocalServer/SQL Server
type
USHORT = Word; SQLSMALLINT = SHORT;
SQLRETURN = SQLSMALLINT;
SQLINTEGER = Longint;
SQLHANDLE = SQLINTEGER;
SQLHENV = SQLHANDLE;
SQLUSMALLINT = USHORT;
SQLPCHAR = PChar;const
// DLL名
odbc32 = 'odbc32.dll'; SQL_SUCCESS = 0;
SQL_SUCCESS_WITH_INFO = 1;
SQL_INVALID_HANDLE = -2;
SQL_ERROR = -1;
SQL_NO_DATA = 100;
SQL_NO_DATA_FOUND = SQL_NO_DATA; SQL_FETCH_NEXT = 1;
SQL_FETCH_FIRST_USER = 31;
SQL_FETCH_FIRST_SYSTEM = 32;
SQL_FETCH_FIRST = 2; SQL_MAX_DSN_LENGTH = 32;// SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_INVALID_HANDLE, SQL_ERROR
function SQLAllocEnv(var EnvironmentHandle: SQLHENV): SQLRETURN;
stdcall; external odbc32 name 'SQLAllocEnv';function SQLFreeEnv(EnvironmentHandle: SQLHENV): SQLRETURN;
stdcall; external odbc32 name 'SQLFreeEnv';// SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR, SQL_INVALID_HANDLE.
function SQLDrivers(
EnvironmentHandle: SQLHENV;
Direction: SQLUSMALLINT;
DriverDescription: SQLPCHAR;
BufferLength1: SQLSMALLINT;
var DescriptionLengthPtr: SQLSMALLINT;
DriverAttributes: SQLPCHAR;
BufferLength2: SQLSMALLINT;
var AttributesLengthPtr: SQLSMALLINT): SQLRETURN;
stdcall; external odbc32 name 'SQLDrivers';// SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR, SQL_INVALID_HANDLE.
function SQLDataSources(
EnvironmentHandle: SQLHENV;
Direction: SQLUSMALLINT;
ServerName: SQLPCHAR;
BufferLength1: SQLSMALLINT;
var NameLength1Ptr: SQLSMALLINT;
Description: SQLPCHAR;
BufferLength2: SQLSMALLINT;
var NameLength2Ptr: SQLSMALLINT): SQLRETURN;
stdcall; external odbc32 name 'SQLDataSources';//底下这个过程就能取得电脑上ODBC的所有连接
procedure TMainDataModule.GetODBC;
const
BUF_MAX = 1024;
var
LEnvironmentHandle: SQLHENV;
LDriverDescription: array[0..BUF_MAX] of Char;
LDescriptionLengthPtr: SQLSMALLINT;
LDriverAttributes: array[0..BUF_MAX] of Char;
AttributesLengthPtr: SQLSMALLINT;
LReturn: SQLRETURN;
LText: String;
begin
try
if (SQLAllocEnv(LEnvironmentHandle) = SQL_ERROR) then Exit; try
FillChar(LDriverDescription, SizeOf(LDriverDescription), 0);
FillChar(LDriverAttributes, SizeOf(LDriverAttributes), 0); LReturn := SQLDrivers(LEnvironmentHandle, SQL_FETCH_FIRST,
LDriverDescription, BUF_MAX + 1, LDescriptionLengthPtr,
LDriverAttributes, BUF_MAX + 1, AttributesLengthPtr); while (LReturn <> SQL_NO_DATA_FOUND) do
begin
LText := String(LDriverDescription);
if Pos('MySQL ODBC',LText) > 0 then
begin
MySQLODBC := LText;
Exit;
end; FillChar(LDriverDescription, SizeOf(LDriverDescription), 0);
FillChar(LDriverAttributes, SizeOf(LDriverAttributes), 0); LReturn := SQLDrivers(LEnvironmentHandle, SQL_FETCH_NEXT,
LDriverDescription, BUF_MAX + 1, LDescriptionLengthPtr,
LDriverAttributes, BUF_MAX + 1, AttributesLengthPtr);
end; finally
SQLFreeEnv(LEnvironmentHandle);
end;
except
on E:Exception do Exit;
end;
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function BreakList(const ANullTerminateText: array of Char): String;
end;
type
USHORT = Word; SQLSMALLINT = SHORT;
SQLRETURN = SQLSMALLINT;
SQLINTEGER = Longint;
SQLHANDLE = SQLINTEGER;
SQLHENV = SQLHANDLE;
SQLUSMALLINT = USHORT;
SQLPCHAR = PChar;const
// DLL名
odbc32 = 'odbc32.dll'; SQL_SUCCESS = 0;
SQL_SUCCESS_WITH_INFO = 1;
SQL_INVALID_HANDLE = -2;
SQL_ERROR = -1;
SQL_NO_DATA = 100;
SQL_NO_DATA_FOUND = SQL_NO_DATA; SQL_FETCH_NEXT = 1;
SQL_FETCH_FIRST_USER = 31;
SQL_FETCH_FIRST_SYSTEM = 32;
SQL_FETCH_FIRST = 2; SQL_MAX_DSN_LENGTH = 32;// SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_INVALID_HANDLE, SQL_ERROR
function SQLAllocEnv(var EnvironmentHandle: SQLHENV): SQLRETURN;
stdcall; external odbc32 name 'SQLAllocEnv';function SQLFreeEnv(EnvironmentHandle: SQLHENV): SQLRETURN;
stdcall; external odbc32 name 'SQLFreeEnv';// SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR, SQL_INVALID_HANDLE.
function SQLDrivers(
EnvironmentHandle: SQLHENV;
Direction: SQLUSMALLINT;
DriverDescription: SQLPCHAR;
BufferLength1: SQLSMALLINT;
var DescriptionLengthPtr: SQLSMALLINT;
DriverAttributes: SQLPCHAR;
BufferLength2: SQLSMALLINT;
var AttributesLengthPtr: SQLSMALLINT): SQLRETURN;
stdcall; external odbc32 name 'SQLDrivers';// SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR, SQL_INVALID_HANDLE.
function SQLDataSources(
EnvironmentHandle: SQLHENV;
Direction: SQLUSMALLINT;
ServerName: SQLPCHAR;
BufferLength1: SQLSMALLINT;
var NameLength1Ptr: SQLSMALLINT;
Description: SQLPCHAR;
BufferLength2: SQLSMALLINT;
var NameLength2Ptr: SQLSMALLINT): SQLRETURN;
stdcall; external odbc32 name 'SQLDataSources';var
Form1: TForm1;implementation{$R *.dfm}function TForm1.BreakList(const ANullTerminateText: array of Char): String;
var
LStart: Integer;
LBuffer: array[0..255] of Char;
LText: String;
begin
LStart := 0;
LText := ANullTerminateText;
Result := LText;
Inc(LStart, Length(LText) + 1);
while (True) do
begin
FillChar(LBuffer, SizeOf(LBuffer), 0);
Move(ANullTerminateText[LStart], LBuffer, SizeOf(LBuffer));
LText := LBuffer;
Inc(LStart, Length(LText) + 1);
if (LText = '') then Break;
Result := Result + ',' + AnsiQuotedStr(LText, '"');
end;
end;procedure TForm1.Button1Click(Sender: TObject);
const
BUF_MAX = 1024;
var
LEnvironmentHandle: SQLHENV;
LDriverDescription: array[0..BUF_MAX] of Char;
LDescriptionLengthPtr: SQLSMALLINT;
LDriverAttributes: array[0..BUF_MAX] of Char;
AttributesLengthPtr: SQLSMALLINT;
LReturn: SQLRETURN;
LText: String;
begin
Memo1.Clear(); try
if (SQLAllocEnv(LEnvironmentHandle) = SQL_ERROR) then Exit; try
FillChar(LDriverDescription, SizeOf(LDriverDescription), 0);
FillChar(LDriverAttributes, SizeOf(LDriverAttributes), 0); LReturn := SQLDrivers(LEnvironmentHandle, SQL_FETCH_FIRST,
LDriverDescription, BUF_MAX + 1, LDescriptionLengthPtr,
LDriverAttributes, BUF_MAX + 1, AttributesLengthPtr); while (LReturn <> SQL_NO_DATA_FOUND) do
begin
LText := String(LDriverDescription);// + '/' + BreakList(LDriverAttributes);
Memo1.Lines.Add(LText); FillChar(LDriverDescription, SizeOf(LDriverDescription), 0);
FillChar(LDriverAttributes, SizeOf(LDriverAttributes), 0); LReturn := SQLDrivers(LEnvironmentHandle, SQL_FETCH_NEXT,
LDriverDescription, BUF_MAX + 1, LDescriptionLengthPtr,
LDriverAttributes, BUF_MAX + 1, AttributesLengthPtr);
end; finally
SQLFreeEnv(LEnvironmentHandle);
end;
except
on E:Exception do Memo1.Lines.Add(E.Message);
end;
end;procedure TForm1.Button2Click(Sender: TObject);
const
BUF_MAX = 1024;
var
LEnvironmentHandle: SQLHENV;
LServerName: array[0..SQL_MAX_DSN_LENGTH] of Char;
LNameLength1Ptr: SQLSMALLINT;
LDescription: array[0..BUF_MAX] of Char;
LNameLength2Ptr: SQLSMALLINT;
LReturn: SQLRETURN;
LText: String;
begin
Memo1.Clear(); try
if (SQLAllocEnv(LEnvironmentHandle) = SQL_ERROR) then Exit; try
FillChar(LServerName, SizeOf(LServerName), 0);
FillChar(LDescription, SizeOf(LDescription), 0); LReturn := SQLDataSources(LEnvironmentHandle, SQL_FETCH_FIRST,
LServerName, SQL_MAX_DSN_LENGTH + 1, LNameLength1Ptr,
LDescription, BUF_MAX + 1, LNameLength2Ptr); while (LReturn <> SQL_NO_DATA_FOUND) do
begin
LText := String(LServerName) + '/' + BreakList(LDescription);
Memo1.Lines.Add(LText); FillChar(LServerName, SizeOf(LServerName), 0);
FillChar(LDescription, SizeOf(LDescription), 0); LReturn := SQLDataSources(LEnvironmentHandle, SQL_FETCH_NEXT,
LServerName, SQL_MAX_DSN_LENGTH + 1, LNameLength1Ptr,
LDescription, BUF_MAX + 1, LNameLength2Ptr);
end; finally
SQLFreeEnv(LEnvironmentHandle);
end;
except
on E:Exception do Memo1.Lines.Add(E.Message);
end;
end;end.
Button1Click:
SQL Server
Microsoft Access Driver (*.mdb)
Microsoft Text Driver (*.txt; *.csv)
Microsoft Excel Driver (*.xls)
Microsoft dBase Driver (*.dbf)
Microsoft Paradox Driver (*.db )
Microsoft Visual FoxPro Driver
Microsoft FoxPro VFP Driver (*.dbf)
Microsoft dBase VFP Driver (*.dbf)
Microsoft Access-Treiber (*.mdb)
Microsoft Text-Treiber (*.txt; *.csv)
Microsoft Excel-Treiber (*.xls)
Microsoft dBase-Treiber (*.dbf)
Microsoft Paradox-Treiber (*.db )
Microsoft Visual FoxPro-Treiber
Driver do Microsoft Access (*.mdb)
Driver da Microsoft para arquivos texto (*.txt; *.csv)
Driver do Microsoft Excel(*.xls)
Driver do Microsoft dBase (*.dbf)
Driver do Microsoft Paradox (*.db )
Driver para o Microsoft Visual FoxPro
Microsoft ODBC for Oracle
MySQL ODBC 3.51 DriverButton2Click:
MS Access Database/Microsoft Access Driver (*.mdb)
Excel Files/Microsoft Excel Driver (*.xls)
dBASE Files/Microsoft dBase Driver (*.dbf)
_iamp/MySQL ODBC 3.51 Driver
Xtreme Sample Database 2005 CHS/Microsoft Access Driver (*.mdb)
QT_Flight32/Microsoft Access Driver (*.mdb)
LocalServer/SQL Server
检测到某种数据库以后,就开始用sql建数据库,建表吗?
那么基础数据,通过插入语句?
你检测到某种数据库后,可以在TADOConnection控件的ConnectionString属性里设置连接上数据库,
我给你一段连接MYSQL 5.0数据库的语句吧
DRIVER={MySQL ODBC 3.51 Driver};SERVER = 192.168.1.6;DATABASE = iamp;USER = WJH;PASSWORD = 123456;OPTION=3;如果你是要根据返回的数据库类型后用SQL语句去建数据库,可以再放一个TADOQuery控件,或者是动态创建也可以。
底下是一段连接MSSQL数据库的语句:
Provider=SQLOLEDB.1;Password=admroot5;Persist Security Info=True;User ID=sa;Initial Catalog=master;Data Source=.
你在TADOConnection连接成功后,可以使用
var
TQuery : TADOQuery;
begin
TQuery := TADOQuery.Create(nil);
TQuery.Connection := TADOConnection;//TADOConnection这个你换成上面定义的名称就行
TQuery.SQL.Text := '';//这里写创建数据库的语句
try
TQuery.ExecSQL;
except
end;
//上面就创建好数据库后,然后你就可以进行创建表之类的操作了,后面我就不写了
end;