有关VC数据库操作的几个问题:

happylaodu 2001-05-06 06:03:00
先前编一程序,VC下,ODBC编程,数据库是MDB(Access),现想增强功能:
1. 在发现找不到数据库文件(mdb)的情况下,创建一个空文件;
2. 在上述新生成的文件中创建表
3. 在述新生成的表中插入一两条记录。

请问程序如何自动实现上述功能(主要是前面两个,后一个不说也行),最好附上必要的语句。谢谢!
...全文
71 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
宏鑫晶科 2001-05-06
  • 打赏
  • 举报
回复
ODBC:

char* szDesc;
int mlen;
szDesc=new char[256];
CString strpath;
strpath = dbfile_name;
while((CString)(strpath.GetAt(strpath.GetLength()-1))!="\\")
{
strpath.Delete(strpath.GetLength()-1,1);
}
strpath.Delete(strpath.GetLength()-1,1);

sprintf(szDesc,"DSN=%s^ DESCRIPTION=TOC support source^ DBQ=%s^ FIL=MicrosoftAccess^ DEFAULTDIR=%s^^",
"MyDB",dbfile_name,strpath);
mlen = strlen(szDesc);

for (int i=0; i<mlen; i++)
{
if (szDesc[i] == '^')
szDesc[i] = '\0';
}

if (FALSE == SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0",(LPCSTR)szDesc))
{
MessageBox("Failed","INFORMATION",MB_OK);
return;
}
//else
// MessageBox("Sucess","INFORMATION",MB_OK);
m_MsGrid.ClearFields();
m_MsGrid.SetCaption(dbfile_name);
m_Rdc.SetDataSourceName(_T("MyDB"));
m_Rdc.SetSql(_T("select * from 产品测试数据表"));
m_Rdc.SetUserName(_T(""));

m_Rdc.SetPassword(_T(""));
m_Rdc.SetCaption(m_gDb_path);
m_Rdc.SetCursorDriver(0);
m_Rdc.Refresh();
宏鑫晶科 2001-05-06
  • 打赏
  • 举报
回复
我用DAO:
CDaoDatabase db;
db.Create(DbName);
CDaoTableDef tbf(&db);
tbf.Create("index_table");
tbf.CreateField("序号",dbLong,dbAutoIncrField);
tbf.CreateField("产品型号",dbText,40,dbVariableField);
tbf.CreateField("出厂序号",dbText,20,dbVariableField);
tbf.CreateField("日期",dbText,20,dbVariableField);
tbf.CreateField("时间",dbText,20,dbVariableField);
tbf.CreateField("评价",dbText,20,dbVariableField);
tbf.CreateField("状态",dbByte,1,dbVariableField);
tbf.CreateField("测试数据库路径",dbText,80,dbVariableField);
CDaoIndexInfo indexinfo;
CDaoIndexFieldInfo indexfieldinfo;
indexfieldinfo.m_bDescending=FALSE;
indexfieldinfo.m_strName="序号";
indexinfo.m_bPrimary=TRUE;
indexinfo.m_strName="序号";
indexinfo.m_nFields=1;
indexinfo.m_pFieldInfos=&indexfieldinfo;
tbf.CreateIndex(indexinfo);
tbf.Append();
tbf.Close();
db.Close()
happylaodu 2001-05-06
  • 打赏
  • 举报
回复
大侠帮忙啊!

4,012

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧