急!如何用sql语句,实现代码创建access数据库?
如何用sql语句,实现代码创建access数据库?
比如我要创建一个叫test.mdb的数据库,里面有这样一个表data
data字段
语文 数值 3.1
数学 数值 3.1
该怎么办?
大家帮忙,定有酬谢.!
问题点数:0、回复次数:3Top
1 楼gdyt007(只因专注)回复于 2003-06-01 19:55:50 得分 0
这个问题我也关心很久了!人家用vb的爽的不行了!但是bcb我却现在还没找到和想到!郁闷Top
2 楼annkie(无声的雨)回复于 2003-06-01 20:12:01 得分 0
这是我收藏的帖子,看看吧.
如何在程序中创建一个*.mdb,创建一个Table.
建立Access数据库
Variant CreateAccess;
CreateAccess = CreateOleObject("ADOX.Catalog");
CreateAccess.OleFunction("Create",
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\temp.mdb");
CreateAccess = Unassigned;
Application->ProcessMessages();
建立表
用SQL语言Create Table
用ADOX。或一个更土的方法,建一个空的MDB,到了用的时间,偷偷COPY过去。
/*------------------------------------------------------------------------------
函数名:CreateTempDatabase
功能: 1) 建立数据库
2) 图片目录初始化数据库
输入参数: DatabaseName:临时库的名称和路径(全名)
输出参数: 成功:True
失败:False
时间: 2002.04.05
Author: AF
------------------------------------------------------------------------------*/
bool __fastcall TForm_BatchSelect :: CreateTempDatabase(AnsiString DatabaseName )
{
//建临时库
try
{
//判断是否已经存在要创建的库名,如有先删除
HWND hwnd;
hwnd =CreateFile(DatabaseName.c_str(),0,0,NULL,OPEN_EXISTING,FILE_FLAG_DELETE_ON_CLOSE ,NULL);
if(hwnd == INVALID_HANDLE_VALUE)
MessageBox(Application->Handel,"删除已存在的文件失败","提示信息",MB_OK+MB_ICONERROR);
CloseHandle(hwnd);
TCOM_DBEngine Engine=new CoDBEngine->Create();
WideString LocalString=";LANGID=0x0409;CP=1252;COUNTRY=0;";
Engine->CreateDatabase(WideString(DatabaseName).c_bstr(),LocalString.c_bstr(),dbVersion40);
delete Engine;
return true;
}
catch (...)
{
MessageBox(Application->Handle,"删除已存在的文件失败,请确认其他程序没有对它操作","错误信息!",MB_OK+MB_ICONERROR);
return false;
}
}
//------------------------------------------------------------------------------
/*------------------------------------------------------------------------------
函数名: CreateTempTable
功能: 根据图片目录中的图片信息,创建图片表
输入函数: DatabaseName 创建的临时库名
输出函数: 成功---ture
失败---false
时间: 2001.04.05
作者: A.F
------------------------------------------------------------------------------*/
bool __fastcall TForm_BatchSelect :: CreateTempTable(AnsiString DatabaseName)
{
TADOConnection *ADOConnectionTempTable=new TADOConnection(NULL);
TADOQuery *ADOQueryTempTable=new TADOQuery(NULL);
try
{
ADOConnectionTempTable->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source='"+DatabaseName+"';Persist Security Info=False;";
ADOConnectionTempTable->LoginPrompt=false;
ADOConnectionTempTable->Open();
ADOQueryTempTable->Connection=ADOConnectionTempTable;
ADOQueryTempTable->SQL->Clear();
ADOQueryTempTable->SQL->Add("CREATE TABLE PicAttr \
( PicSerial char(20),\
ReceiptNo long, \
ExtendNo long,\
ReceiptType long,\
AcsyNo int,\
fFlag int,\
bFlag int,\
pfName char (100),\
pbName char (100) NULL,\
EditFlag int \
)");
ADOQueryTempTable->ExecSQL();
ADOQueryTempTable->SQL->Clear();
ADOQueryTempTable->SQL->Add("create index PicSerial on PicAttr(PicSerial)");
ADOQueryTempTable->ExecSQL();
ADOConnectionTempTable->Close();
}
catch(...)
{
MessageBox(Application->Handle,"创建图片信息临时表出错!","错误信息",MB_OK+MB_ICONERROR);
delete ADOConnectionTempTable;
delete ADOQueryTempTable;
return false;
}
delete ADOConnectionTempTable;
delete ADOQueryTempTable;
ADOConnectionTempTable = 0;
ADOQueryTempTable = 0;
return true;
}
Top
3 楼gfh_79_0(ghf)回复于 2003-06-01 20:15:46 得分 0
代码建表以前帖子有的。
建test.mdb的数据库我不清楚。Top




