ADOConnection.GetTableNames

ADOConnection.OpenSchema或用
ADOX来获得

解决方案 »

  1.   

    ADOConnection1.GetTableNames(Memo1.Lines);
      

  2.   

    可是我用
    ADOConnection.GetTableNames

    ADOConnection.OpenSchema
    这两种方法多提示错误?
      

  3.   

    我的一段程序:
    var
      str,AppPath:string;
      dbname,fieldname:tstringlist;
      iCount,nCount:integer;
      ListItem:TListItem;
    begin
      DataModule3.ADOTable4.Locate('tablename',searchedit.Text,[loCaseInsensitive,loPartialKey]);
      for nCount:=0 to rzlistview1.Items.Count-1 do
      begin
        if rzlistview1.Items[nCount].Caption=DataModule3.ADOTable4.FieldByName('tablename').asstring then
        begin
          rzlistview1.Items[nCount].Selected:=true;
        end;
      end;
      if rzlistview1.Selected<>nil then
      begin
        ADOConnection1.Close;
        ADOConnection1.Connected:=false;
        ADOConnection1.ConnectionString:='';
        str:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=';
        AppPath:=ExtractFileDir(Application.ExeName);
        str:=str+AppPath+'\bsdata\'+rzlistview1.Selected.Caption;
        ADOConnection1.ConnectionString:=str+'.mdb;Mode=Share Deny None;'+'Extended Properties="";Jet OLEDB:System database="";'+'Jet OLEDB:Registry Path="";'+'Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=4;'+'Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;'+'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";'+'Jet OLEDB:Create System Database=False;'+'Jet OLEDB:Encrypt Database=False;'+'Jet OLEDB:Don''t Copy Locale on Compact=False;'+'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
        ADOConnection1.Connected:=true;
        ADOConnection1.Open;
        dbname:=tstringlist.Create;
        ADOConnection1.GetTableNames(dbname,false);
        fieldname:=tstringlist.Create;
        ADOConnection1.GetFieldNames(dbname.Strings[0],fieldname);
        rzlistview2.Items.Clear;
        for icount:=0 to fieldname.Count-1 do
        begin
          rzlistview2.Items.BeginUpdate;
          ListItem:=rzlistview2.Items.Add ;
          ListItem.Caption:=fieldname.Strings[icount];
          rzlistview2.Items.EndUpdate;
        end;
        rzlistview1.SetFocus;
      end;
    end;
      

  4.   

    我的一段程序:
    var
      str,AppPath:string;
      dbname,fieldname:tstringlist;
      iCount,nCount:integer;
      ListItem:TListItem;
    begin
      DataModule3.ADOTable4.Locate('tablename',searchedit.Text,[loCaseInsensitive,loPartialKey]);
      for nCount:=0 to rzlistview1.Items.Count-1 do
      begin
        if rzlistview1.Items[nCount].Caption=DataModule3.ADOTable4.FieldByName('tablename').asstring then
        begin
          rzlistview1.Items[nCount].Selected:=true;
        end;
      end;
      if rzlistview1.Selected<>nil then
      begin
        ADOConnection1.Close;
        ADOConnection1.Connected:=false;
        ADOConnection1.ConnectionString:='';
        str:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=';
        AppPath:=ExtractFileDir(Application.ExeName);
        str:=str+AppPath+'\bsdata\'+rzlistview1.Selected.Caption;
        ADOConnection1.ConnectionString:=str+'.mdb;Mode=Share Deny None;'+'Extended Properties="";Jet OLEDB:System database="";'+'Jet OLEDB:Registry Path="";'+'Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=4;'+'Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;'+'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";'+'Jet OLEDB:Create System Database=False;'+'Jet OLEDB:Encrypt Database=False;'+'Jet OLEDB:Don''t Copy Locale on Compact=False;'+'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
        ADOConnection1.Connected:=true;
        ADOConnection1.Open;
        dbname:=tstringlist.Create;
        ADOConnection1.GetTableNames(dbname,false);
        fieldname:=tstringlist.Create;
        ADOConnection1.GetFieldNames(dbname.Strings[0],fieldname);
        rzlistview2.Items.Clear;
        for icount:=0 to fieldname.Count-1 do
        begin
          rzlistview2.Items.BeginUpdate;
          ListItem:=rzlistview2.Items.Add ;
          ListItem.Caption:=fieldname.Strings[icount];
          rzlistview2.Items.EndUpdate;
        end;
        rzlistview1.SetFocus;
      end;
    end;
      

  5.   

    我的一段程序:
    var
      str,AppPath:string;
      dbname,fieldname:tstringlist;
      iCount,nCount:integer;
      ListItem:TListItem;
    begin
      DataModule3.ADOTable4.Locate('tablename',searchedit.Text,[loCaseInsensitive,loPartialKey]);
      for nCount:=0 to rzlistview1.Items.Count-1 do
      begin
        if rzlistview1.Items[nCount].Caption=DataModule3.ADOTable4.FieldByName('tablename').asstring then
        begin
          rzlistview1.Items[nCount].Selected:=true;
        end;
      end;
      if rzlistview1.Selected<>nil then
      begin
        ADOConnection1.Close;
        ADOConnection1.Connected:=false;
        ADOConnection1.ConnectionString:='';
        str:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=';
        AppPath:=ExtractFileDir(Application.ExeName);
        str:=str+AppPath+'\bsdata\'+rzlistview1.Selected.Caption;
        ADOConnection1.ConnectionString:=str+'.mdb;Mode=Share Deny None;'+'Extended Properties="";Jet OLEDB:System database="";'+'Jet OLEDB:Registry Path="";'+'Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=4;'+'Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;'+'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";'+'Jet OLEDB:Create System Database=False;'+'Jet OLEDB:Encrypt Database=False;'+'Jet OLEDB:Don''t Copy Locale on Compact=False;'+'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
        ADOConnection1.Connected:=true;
        ADOConnection1.Open;
        dbname:=tstringlist.Create;
        ADOConnection1.GetTableNames(dbname,false);
        fieldname:=tstringlist.Create;
        ADOConnection1.GetFieldNames(dbname.Strings[0],fieldname);
        rzlistview2.Items.Clear;
        for icount:=0 to fieldname.Count-1 do
        begin
          rzlistview2.Items.BeginUpdate;
          ListItem:=rzlistview2.Items.Add ;
          ListItem.Caption:=fieldname.Strings[icount];
          rzlistview2.Items.EndUpdate;
        end;
        rzlistview1.SetFocus;
      end;
    end;
      

  6.   

    有没有完整的实例?
    [email protected]