var cnn,rs:Variant;
i:Integer;
begin
cnn := CreateOLEObject('Adodb.Connection'); //建立连接对象
cnn.Open ('DRIVER={SQL Server};uid=sa;pwd=;DATABASE=pubs;SERVER=127.0.0.1');
rs := rs.ExeCute('select * FROM authors');
if not rs.eof then
for i:=0 to rs.fields.COunte -1 do
begin
// rs.fields.items[i].name 这个是字段名
// rs.fields.items[i].value 值
end;
rs.close ; //关闭recordset
cnn.close; // close connection
// 移动记录到下一条为 rs.moveNext
end;
可以取回TABLE (表),VIEW(视图),SYSTEM TABLE(系统表),PROCEDURE_NAME (存储过程名)
///////////////////////////// 取类型 /////////////
// GetTableNamesByMode(tStringList,TableType)
// TABLE
// VIEW
// SYSTEM TABLE
// PROCEDURE_NAME
//////////////////////////////////////////////////
procedure TfrmMain.GetTableNamesByMode(DbName:String;List: TStrings;
ShowTablesType: String); //取表,从类型区别
procedure GetProcedureNames(List: TStrings);
var
NameField: TField;
DataSet: TADODataSet;
ADoCn:TADOConnection;
begin
DataSet := TADODataSet.Create(nil);
AdoCn := TADOConnection.Create(nil);
with AdoCn do
begin
try
ConnectionString:=ADOConn.ConnectionString;
DefaultDatabase :=DbName;
LoginPrompt :=false;
OpenSchema(siProcedures, EmptyParam, EmptyParam, DataSet);
NameField := DataSet.FieldByName('PROCEDURE_NAME'); { do not localize }
while not DataSet.EOF do
begin
List.Add(NameField.AsString);
DataSet.Next;
end;
finally
DataSet.Free;
end;
AdoCn.Free;
end;
end;
var
TypeField,
NameField: TField;
TableType: string;
DataSet: TADODataSet;
ADoCn:TADOConnection;
begin
if ShowTablesType='PROCEDURE_NAME' then
begin
GetProcedureNames(List); //反馈存储过程
Exit;
end;
DataSet := TADODataSet.Create(nil);
AdoCn := TADOConnection.Create(nil);
with AdoCn do
begin
try
ConnectionString:=ADOConn.ConnectionString;
DefaultDatabase :=DbName;
LoginPrompt :=false;
OpenSchema(siTables, EmptyParam, EmptyParam, DataSet);
TypeField := DataSet.FieldByName('TABLE_TYPE'); { do not localize }
NameField := DataSet.FieldByName('TABLE_NAME'); { do not localize }
List.BeginUpdate;
try
List.Clear;
while not DataSet.EOF do
begin
TableType := TypeField.AsString;
If (ShowTablesType=TableType) then
List.Add(NameField.AsString);
DataSet.Next;
end;
finally
List.EndUpdate;
end;
finally
AdoCn.Free;
DataSet.Free;
end;
end;