HELP(在线等待)
我想用SQL生成一个名为aa.db的表,以下代码在运行时出错,请各位高手指点
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("CREATE TABLE aa.db");
ADOQuery1->Open();
}
//---------------------------------------------------------------------------
问题点数:10、回复次数:3Top
1 楼wanlucky(博博)回复于 2002-04-21 18:34:21 得分 7
原因很简单,你用的查询控件,主要是用SQL查询,不能用创建表的SQL语句,要想自己创建表,例子如下:
if (!Table1->Exists) // Don't overwrite an existing table
{
Table1->Active = false; // The Table component must not be active
// First, describe the type of table and give it a name
Table1->DatabaseName = "BCDEMOS";
Table1->TableType = ttParadox;
Table1->TableName = "CustInfo";
// Next, describe the fields in the table
Table1->FieldDefs->Clear();
TFieldDef *pNewDef = Table1->AddFieldDef();
pNewDef->Name = "Field1";
pNewDef->DataType = ftInteger;
pNewDef->Required = true;
pNewDef = Table1->AddFieldDef();
pNewDef->Name = "Field2";
pNewDef->DataType = ftString;
pNewDef->Size = 30;
// Next, describe any indexes
Table1->IndexDefs->Clear();
/* the 1st index has no name because it is a Paradox primary key */
Table1->IndexDefs->Add("","Field1", TIndexOptions() <<ixPrimary << ixUnique);
Table1->IndexDefs->Add("Fld2Index","Field2", TIndexOptions() << ixCaseInsensitive);
// Now that we have specified what we want, create the table
Table1->CreateTable();
}
不要用TADOTable控件,它没有创建表的方法.Top
2 楼888789(yf888789)回复于 2002-04-21 19:38:30 得分 0
试一试将Open()方法改为Exesql()Top
3 楼invalid(空心菜(Python是个好东东,大家多用用!))回复于 2002-04-21 20:05:50 得分 3
放置一个TAble和Tquery,Tbatchmove,Tbatchmove设置为从Query到Table,下面的代码把query的结果保存到一个表中.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("select * from biolife");
try
{
Query1->Open();
}
catch(...)
{
ShowMessage("error");
}
Table1->DatabaseName=Query1->DatabaseName;
Table1->TableName = Edit2->Text;
Table1->FieldDefs->Clear();
Table1->FieldDefs->Assign(Query1->FieldDefs);
Table1->CreateTable();
BatchMove1->Execute();
ShowMessage("OK");
}
//-----Top




