我想用TAdoConnection的OpenSchema方法查看特定表字段详细信息,把它要求的参数全部传递进去,运行的时候会出错,大概的意思是说参数值有问题。哪位高手有现成的代码借鉴一下?不胜感激。

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, Grids, DBGrids;type
      TForm1 = class(TForm)
        ADOConnection1: TADOConnection;
        ADODataSet1: TADODataSet;
        DataSource1: TDataSource;
        DBGrid1: TDBGrid;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
    ADOConnection1.OpenSchema(siTables,EmptyParam,EmptyParam,ADODataSet1);
    end;end.
      

  2.   

    object Form1: TForm1
      Left = 192
      Top = 107
      Width = 696
      Height = 480
      Caption = 'Form1'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      OnCreate = FormCreate
      PixelsPerInch = 96
      TextHeight = 13
      object DBGrid1: TDBGrid
        Left = 64
        Top = 128
        Width = 320
        Height = 120
        DataSource = DataSource1
        TabOrder = 0
        TitleFont.Charset = DEFAULT_CHARSET
        TitleFont.Color = clWindowText
        TitleFont.Height = -11
        TitleFont.Name = 'MS Sans Serif'
        TitleFont.Style = []
      end
      object ADOConnection1: TADOConnection
        ConnectionString = 
          'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initi' +
          'al Catalog=pubs;Data Source=.\sql2000'
        Provider = 'SQLOLEDB.1'
        Left = 176
        Top = 200
      end
      object ADODataSet1: TADODataSet
        Parameters = <>
        Left = 144
        Top = 48
      end
      object DataSource1: TDataSource
        DataSet = ADODataSet1
        Left = 88
        Top = 40
      end
    end
      

  3.   

    ADOConnection1.OpenSchema(siColumns,VarArrayOf([Unassigned, Unassigned,'jobs', Unassigned]),
         EmptyParam,ADODataSet1);
      

  4.   

    大虾看看我的错在哪呀...当学delphiunit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      Db, ADODB, StdCtrls;type
      TForm1 = class(TForm)
        ADOConnection1: TADOConnection;
        Button1: TButton;
        ADODataSet1: TADODataSet;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    var i:integer;
    begin
        adoconnection1.Connected := true;
        adodataset1.Active := true;
        adoconnection1.OpenSchema(sicolumns,vararrayof([Null,Null,'交易申请表']),EmptyParam,adodataset1);
        //for i:= 0 to adodataset1.Recordset.Fields.count-1 do
        while not adodataset1.eof do
        begin
            showmessage(adodataset1.Recordset.Fields.Item[i].Name);
          adodataset1.Next;
        end;
        adodataset1.Active := false;
    end;end.