初学者ado弱问

yuyangmain 2007-06-24 10:28:28
从老妖那下了关于access数据库应用的代码,自己想试下来着,结果说找不到文件
[Linker Fatal Error] Fatal: Expected a file name:
程序同目录下有个bcb.mdb的access文件里面就一个表,表的名称是“bcb元件”
表里的内容是元件选项板、元件名称、和元件简介。
数据库连接是正常的,用DBGrid能显示内容。
就放了 4个元件ComboBox DBGrid DataSource AdoTable
下面是代码 请指教

void __fastcall TFormBcb::FormCreate(TObject *Sender)
{
String path;
path.SetLength(MAX_PATH);
path.SetLength(GetTempPath(MAX_PATH,path.c_str()));
DbFile = path + "bcb";

// 解出数据库
TResourceStream *rs = new TResourceStream((int)nstance,"bcb","FILE");
rs->SaveToFile(DbFile);
delete rs;
//
AnsiString StrCnn = "Provider=Microsoft.Jet.OLEDB.4.0";
StrCnn += ";Data Source=" + DbFile;
StrCnn += ";Persist Security Info=False";
Table1->ConnectionString = StrCnn;
Table1->TableName = "bcb元件";
Table1->Active = true;

TableList = new TStringList;
AnsiString strTmp;
while(!Table1->Eof)
{
ComboBox1->Items->Add(Table1->FieldByName("元件选项板")->AsString);
TableList->Add(Table1->FieldByName("TableName")->AsString);
Table1->Next();
}
}
...全文
235 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuyangmain 2007-07-11
  • 打赏
  • 举报
回复
也是不行的。。
jacknes009 2007-07-08
  • 打赏
  • 举报
回复
把代码改成这个试试
void __fastcall TFormBcb::FormCreate(TObject *Sender)
{
String path;
path.SetLength(MAX_PATH);
path.SetLength(GetTempPath(MAX_PATH,path.c_str()));
DbFile = path + "bcb.mdb";

AnsiString StrCnn = "Provider=Microsoft.Jet.OLEDB.4.0";
StrCnn += ";Data Source=" + DbFile;
StrCnn += ";Persist Security Info=False";
Table1->ConnectionString = StrCnn;
Table1->TableName = "bcb元件";
Table1->Active = true;

TableList = new TStringList;
AnsiString strTmp;
while(!Table1->Eof)
{
ComboBox1->Items->Add(Table1->FieldByName("元件选项板")->AsString);
TableList->Add(Table1->FieldByName("TableName")->AsString);
Table1->Next();
}
}
flowercity 2007-07-07
  • 打赏
  • 举报
回复
hehe
yuyangmain 2007-07-04
  • 打赏
  • 举报
回复
to:Waiting4you(毛毛)
没有rc文件呀。。
Waiting4you 2007-06-25
  • 打赏
  • 举报
回复
rc文件里指定的数据库文件名写对了吗?
黑兵 2007-06-25
  • 打赏
  • 举报
回复
String path;
//path.SetLength(MAX_PATH);
//path.SetLength(GetTempPath(MAX_PATH,path.c_str()));
DbFile = path + "bcb";
可能你把代码放得目录层数过多了,导致文件绝对路径过长,部分内容被切下去了。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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