如何实现用ListBox列出数据库中所有的表名?
请教:
如何实现用ListBox列出数据库中所有的表名?
问题点数:0、回复次数:6Top
1 楼invalid(空心菜(Python是个好东东,大家多用用!))回复于 2003-10-02 18:14:30 得分 0
ADO:
ADOConnection1->GetTableNames(ListBox2->Items, false);
BDE:
Database1->GetTableNames(ListBox1->Items, false);
Top
2 楼invalid(空心菜(Python是个好东东,大家多用用!))回复于 2003-10-02 18:15:07 得分 0
第二个参数是表示是否显现系统表。true显示,false不显示Top
3 楼viviandou2(viviandou)回复于 2003-10-09 15:00:32 得分 0
你用什么连接的数据库,就在这个控件上找一个叫做GETTABLENAMES的方法,这个方法需要两个参数,第一个是你要添加到的LIST,第二个是是否添加系统表。
连接数据库的控件->GetTableNames(目标LIST, 是否添加系统表);
其实这个问题很早就有人提出了,你可以多看看论坛上面的问题。
Top
4 楼huangjuliang(学习,学习,再学习!)回复于 2003-10-09 15:15:04 得分 0
invalid(空心菜)的方法 没错!
其实这些找一下,csdn里都有的!
如
http://expert.csdn.net/Expert/topic/1935/1935759.xml
回答的和上面的一模一样!
Top
5 楼kataboy(老公)回复于 2003-10-09 22:05:34 得分 0
给你一个函数。我自己写的,不错的。
bool ListAllTables(String strCon,TStrings *myList,String strAdr,int ikind)
{
bool br=true;
TADOQuery *myQuery;
String strItem;
try
{
try
{
myQuery=new TADOQuery(NULL);
myQuery->ConnectionString=strCon;
myList->Clear();
myQuery->Close();
myQuery->SQL->Clear();
switch(ikind)
{
case 0:
{
if (strAdr=="")
myQuery->SQL->Text="select * from pp_manager";
else
myQuery->SQL->Text="select * from pp_manager where pp_manager_address='"+strAdr+"'";
myQuery->Open();
myQuery->First();
while(!myQuery->Eof)
{
strItem=myQuery->Fields->FieldByName("pp_manager_name")->AsString;
myList->Add(strItem);
myQuery->Next();
}
break;
}
case 1:
{
myQuery->SQL->Text="select * from xh_manager";
myQuery->Open();
myQuery->First();
while(!myQuery->Eof)
{
strItem=myQuery->Fields->FieldByName("xh_manager_name")->AsString;
myList->Add(strItem);
myQuery->Next();
}
break;
}
case 2:
{
myQuery->SQL->Text="select * from yz_manager";
myQuery->Open();
myQuery->First();
while(!myQuery->Eof)
{
strItem=myQuery->Fields->FieldByName("yz_manager_name")->AsString;
myList->Add(strItem);
myQuery->Next();
}
break;
}
}
}
catch(...)
{
ShowMessage("没有表!");
}
}
__finally
{
myQuery->Close();
delete myQuery;
}
return br;
}
调用方法如下:
TStrings *s;
s=new TStringList();
ListAllTables(Dm->ADOCon->ConnectionString,s,Edit2->Text,StrToInt(Edit1->Text));
ListBox1->Items->Clear();
ListBox1->Items->Assign(s);
ListBox1->ItemIndex=0;
delete s;
大家可以参数一下,改一下。
Top
6 楼BSC(VirtualCat)回复于 2003-10-10 15:31:36 得分 0
Session->GetTableNames("aa","",False,False, MyStringList);Top




