一个数据库写入问题,高手指教!

domustdo 2003-03-15 08:16:07
我用的是paradox数据库,建有Graphic、Memo、Alpha三种类型的3个字段,我打算从文件读入图片,从文件读入文本,在Edit中输入Name后写入Alpha字段,其中图片的写入可以成功实现,就是Memo、Alpha类型的字段写入有错误,错误是"Field Value required."应该是不能写入字段中,请问该如何改正?

//Memo字段的写入,读入txt文件,往字段写入文件内容
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(OpenDialog1->Execute())
{
DataModule1->Query2->Open();
DataModule1->Query2->Append();
TMemo * pMemo = new TMemo(Form1->Handle);
pMemo->Lines->LoadFromFile(OpenDialog1->FileName); //读入文件
DataModule1->Query2PicDescribe->Assign(pMemo->Lines);
delete pMemo;
DataModule1->Query2->Post();
}
}

//在Edit控件中的输入值写入Alpha字段
void __fastcall TForm1::Button3Click(TObject *Sender)
{
DataModule1->Query3->Open();
DataModule1->Query3->Append();
DataModule1->Query3PicName->AsString = Edit1->Text;
DataModule1->Query3->Post();
}
...全文
17 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
waq 2003-03-18
  • 打赏
  • 举报
回复
同意flyinger(琉璃翡翠)
“Field value required.”就是你提交的没有数据!
Robin 2003-03-17
  • 打赏
  • 举报
回复
Query2PicDescribe是什么类型的呢!
delete pMemo;
DataModule1->Query2->Post();
把这两句调换顺序好象可以啊!
不信试试!
很明显是因为没有数据的原因!
因为你还没有提交数据的情况下!就已经把数据给删除了!
当然出错了!
呵呵!
当然也可能是你别的地方搞错了!
哈哈!

domustdo 2003-03-16
  • 打赏
  • 举报
回复
谢谢,我把代码该成如下:
if(OpenDialog1->Execute())
{
DataModule1->Query1->Close();
DataModule1->Query1->SQL->Clear();
DataModule1->Query1->SQL->Add("insert into DBCityView.db \
(PicName, PicDescribe, Picture) \
values (:PicName, :PicDescribe, :Picture) ");
DataModule1->Query1->Open();
//PicDescribe是paradox中的Memo类型字段
DataModule1->Query1->ParamByName("PicDescribe")->LoadFromFile->
(OpenDialog1>FileName, ftMemo);
DataModule1->Query1->ExecSQL();
DataModule1->Query1->Post();
}

void __fastcall TForm1::Button3Click(TObject *Sender)
{
DataModule1->Query1->Close();
DataModule1->Query1->SQL->Clear();
DataModule1->Query1->SQL->Add("insert into DBCityView.db \
(PicName, PicDescribe, Picture) \
values (:PicName, PicDescribe, :Picture) ");
DataModule1->Query1->Open();
//PicName是paradox表中的Alpha类型字段
DataModule1->Query1->ParamByName("PicName")->AsString = Edit1->Text;
DataModule1->Query1->ExecSQL();
DataModule1->Query1->Post();
}
但是这样写后运行是说是“Query1:Field 'PicName' is of an unknow type.”,我把PicName字段类型该成Memo类型后,还是这样的错误,请问是怎么回事?
gfh_79_0 2003-03-16
  • 打赏
  • 举报
回复
APPEND 没用过,
INSERT也可以把。
用Query
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("INSERT INTO TableName (picName1,PicDescribe) VALUES(:picName1,:PicDescribe)");
Query1->ParamByName("picName1")->AsString=Edit1->Text;
Query1->ParamByName("PicDescribe")->As?=?;//什么类型传递我不太清楚。
Query1->ExecSQL();

gfh_79_0 2003-03-16
  • 打赏
  • 举报
回复
Alpha=AsString是对的,我用过,其余我也不知道,搜索论坛吧!
Button3Click()应该没问题啊!
domustdo 2003-03-16
  • 打赏
  • 举报
回复
不行,“Field value required.” 能不能提供一个关于往paradox的Graphic、Memo、Alpha类型字段写数据的源代码?谢谢啊!!
gfh_79_0 2003-03-16
  • 打赏
  • 举报
回复
{
DataModule1->Query1->Close();
DataModule1->Query1->SQL->Clear();
DataModule1->Query1->SQL->Add("insert into DBCityView.db \
(PicName, PicDescribe, Picture) \
values (:PicName, :PicDescribe, :Picture) ");//这里少了一个“:”:PicDescribe
DataModule1->Query1->Open();
//PicName是paradox表中的Alpha类型字段
DataModule1->Query1->ParamByName("PicName")->AsString = Edit1->Text;
DataModule1->Query1->ExecSQL();
DataModule1->Query1->Post();
}

另外插入一个字段,只写一个就好,如下:

void __fastcall TForm1::Button3Click(TObject *Sender)
{
DataModule1->Query1->Close();
DataModule1->Query1->SQL->Clear();
DataModule1->Query1->SQL->Add("insert into DBCityView.db (PicName)
values (:PicName) ");
DataModule1->Query1->Open();//此句大概多余
//PicName是paradox表中的Alpha类型字段
DataModule1->Query1->ParamByName("PicName")->AsString = Edit1->Text;
DataModule1->Query1->ExecSQL();
DataModule1->Query1->Post();
}
domustdo 2003-03-16
  • 打赏
  • 举报
回复
老大们帮帮忙啊!!
qdpb 2003-03-16
  • 打赏
  • 举报
回复
DING
domustdo 2003-03-15
  • 打赏
  • 举报
回复
哪位大虾能帮忙看看?问题到底出在哪里?每次都会提示“Field value required.Field”的EDBEngineError错误!

13,825

社区成员

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

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