C++如何用代码以ADO的方式创建ACCESS数据库,及里面的表.详细的加分
1个回答
展开全部
以下VC++6.0下调试通过
//获取主程序所在路径,存在sPath中
CString sPath;
GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer ();
int nPos;
nPos=sPath.ReverseFind ( '\\ ');
sPath=sPath.Left (nPos);
//默认创建数据名:
CString lpszFile = sPath + "\\PID_y.mdb ";
CFileFind fFind;
BOOL bSuccess;
bSuccess=fFind.FindFile(lpszFile);
fFind.Close ();
//是否已有创建好的PID_y.mdb文件,没有则创建它
if(!bSuccess)
{
db.Create(lpszFile);
//创建PasswordTable 表存储唯一值的表
CString SqlCmd = "CREATE TABLE PasswordTable(Password VARCHAR(20),K VARCHAR(10),T VARCHAR(10),D VARCHAR(10),Tim VARCHAR(10),Matier VARCHAR(10),WaterSpeed VARCHAR(10),InWater VARCHAR(10),OutWater VARCHAR(10),cctim VARCHAR(10),b_setwatar VARCHAR(10),b_matier VARCHAR(10),b_waterspeed VARCHAR(10)); ";
db.Execute(SqlCmd);
//创建WaterSetTable
SqlCmd= "CREATE TABLE Main(DT VARCHAR(20),Matier VARCHAR(20),WaterSet VARCHAR(20),WaterSpeed VARCHAR(20)); ";
db.Execute(SqlCmd);
SqlCmd= "CREATE TABLE Warning(Matier_up VARCHAR(20),Matier_down VARCHAR(20),WaterSet_percent VARCHAR(20),WaterSpeed_up VARCHAR(20),WaterSpeed_down VARCHAR(20)); ";
db.Execute(SqlCmd);
//打开已创建的数据表
RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,
"SELECT * FROM PasswordTable ", 0);
//加入第一个记录,用SQL语句
db.Execute( "INSERT INTO PasswordTable (Password,K,T,D,Tim,Matier,WaterSpeed,InWater,OutWater,cctim,b_setwatar,b_matier,b_waterspeed) VALUES ( 'yyy ',26,10,1,1,10,10,1,1,10,0,0,0) ");
RecSet.Close();
RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,
"SELECT * FROM Warning ", 0);
//加入第一个记录,用SQL语句
db.Execute( "INSERT INTO Warning (Matier_up,Matier_down,WaterSet_percent,WaterSpeed_up,WaterSpeed_down) VALUES (10,10,50,10,10) ");
//关闭记录集及库
RecSet.Close();
db.Close();
AfxMessageBox( "数据库创建成功、初始化密码为yyy! ");
}
//获取主程序所在路径,存在sPath中
CString sPath;
GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer ();
int nPos;
nPos=sPath.ReverseFind ( '\\ ');
sPath=sPath.Left (nPos);
//默认创建数据名:
CString lpszFile = sPath + "\\PID_y.mdb ";
CFileFind fFind;
BOOL bSuccess;
bSuccess=fFind.FindFile(lpszFile);
fFind.Close ();
//是否已有创建好的PID_y.mdb文件,没有则创建它
if(!bSuccess)
{
db.Create(lpszFile);
//创建PasswordTable 表存储唯一值的表
CString SqlCmd = "CREATE TABLE PasswordTable(Password VARCHAR(20),K VARCHAR(10),T VARCHAR(10),D VARCHAR(10),Tim VARCHAR(10),Matier VARCHAR(10),WaterSpeed VARCHAR(10),InWater VARCHAR(10),OutWater VARCHAR(10),cctim VARCHAR(10),b_setwatar VARCHAR(10),b_matier VARCHAR(10),b_waterspeed VARCHAR(10)); ";
db.Execute(SqlCmd);
//创建WaterSetTable
SqlCmd= "CREATE TABLE Main(DT VARCHAR(20),Matier VARCHAR(20),WaterSet VARCHAR(20),WaterSpeed VARCHAR(20)); ";
db.Execute(SqlCmd);
SqlCmd= "CREATE TABLE Warning(Matier_up VARCHAR(20),Matier_down VARCHAR(20),WaterSet_percent VARCHAR(20),WaterSpeed_up VARCHAR(20),WaterSpeed_down VARCHAR(20)); ";
db.Execute(SqlCmd);
//打开已创建的数据表
RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,
"SELECT * FROM PasswordTable ", 0);
//加入第一个记录,用SQL语句
db.Execute( "INSERT INTO PasswordTable (Password,K,T,D,Tim,Matier,WaterSpeed,InWater,OutWater,cctim,b_setwatar,b_matier,b_waterspeed) VALUES ( 'yyy ',26,10,1,1,10,10,1,1,10,0,0,0) ");
RecSet.Close();
RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,
"SELECT * FROM Warning ", 0);
//加入第一个记录,用SQL语句
db.Execute( "INSERT INTO Warning (Matier_up,Matier_down,WaterSet_percent,WaterSpeed_up,WaterSpeed_down) VALUES (10,10,50,10,10) ");
//关闭记录集及库
RecSet.Close();
db.Close();
AfxMessageBox( "数据库创建成功、初始化密码为yyy! ");
}
追问
db.Create(lpszFile);
这个db哪来的.请把这个类发来好吗?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |