如何用sql往数据库里存数据?

wakala 2003-10-30 09:58:34
我写以下代码:
Query1->Active=false;
Query1->SQL->Clear();
Query1->SQL->Add("INSERT INTO animals.DBF (NAME, SIZE1, WEIGHT, AREA)");
Query1->SQL->Add("VALUES (:Name,:Size1,:Weight,:Area)");
//Query1->Prepared=true;
Query1->Prepare();
Query1->Params->Items[0]->AsString = frmAdd->edName->Text;
Query1->Params->Items[1]->AsFloat =frmAdd->edSize->Text.ToDouble();
Query1->Params->Items[2]->AsFloat = frmAdd->edWeight->Text.ToDouble();
Query1->Params->Items[3]->AsString =frmAdd->edArea->Text;
Query1->ExecSQL();
Query1->UnPrepare();
出现List index out of bounds(0)的错误,不知何故,请各位大侠不惜赐教。多谢
...全文
84 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tivro 2004-02-28
  • 打赏
  • 举报
回复
gdy119 2004-02-28
  • 打赏
  • 举报
回复
DM->T_Customer->Insert();
DM->T_Customer->FieldValues["Customer_ID"] = E_Customer_ID->Text;
DM->T_Count->First();

DM->T_Customer->Post();
DM->T_Count->RecNo = 1;
DM->T_Count->Edit();
DM->T_Count->FieldValues["Count_Value"] = E_Customer_ID->Text;
DM->T_Count->Post();
F_Disp->Show();
wakala 2004-02-26
  • 打赏
  • 举报
回复
这样是可以,但是,我写的错在哪里始终令人费解
windami 2003-11-20
  • 打赏
  • 举报
回复
把Query1->Params->Items[0]->AsString = frmAdd->edName->Text;
改成
Query2->ParamByName("NAME")->Value=frmAdd->edName->Text;
其它三个字段同上
试试


jie015 2003-11-17
  • 打赏
  • 举报
回复
Query1->Active=false;
Query1->SQL->Clear();
Query1->SQL->Add("INSERT INTO animals.DBF (NAME, SIZE1, WEIGHT, AREA) ");
Query1->SQL->Add("VALUES");
Query1->SQL->Add(frmAdd->edName->Text);
Query1->SQL->Add(frmAdd->edSize->Text.ToDouble());
Query1->SQL->Add(frmAdd->edWeight->Text.ToDouble());
Query1->SQL->Add(frmAdd->edArea->Text);
Query1->Prepare();
Query1->ExecSQL();
Query1->UnPrepare();
详细的细节自己再写写。
wakala 2003-11-12
  • 打赏
  • 举报
回复
我再看看
wakala 2003-11-10
  • 打赏
  • 举报
回复
??
wakala 2003-11-08
  • 打赏
  • 举报
回复
是啊,感觉就是没错,可是运行时候就是出现问题(郁闷)
LongWayToGo 2003-11-08
  • 打赏
  • 举报
回复
有没有把sql的内容放在后台直接执行?有错吗?
如果有错,就是的后台库结构有问题,
如果没有,我也不知道......(好郁闷,感觉不可能!!!!!)
LongWayToGo 2003-11-07
  • 打赏
  • 举报
回复
建议:
Query1->Active=false;
String sql = "INSERT INTO animals.DBF (NAME, SIZE1, WEIGHT, AREA) VALUES ( "
sql = sql + frmAdd->edName->Text + ",";
sql = sql + frmAdd->edSize->Text + ",";
sql = sql + frmAdd->edWeight->Text + ",";
sql = sql + frmAdd->edArea->Text + ")";
Query1->SQL->Text = sql;
Query1->ExecSQL();
这样写的好处是方便调试,可以把sql的值直接放在后台执行,看是不是有问题.
代码不可能有问题.
wakala 2003-11-07
  • 打赏
  • 举报
回复
对与tydyy8881的建议出现类似的错误:List index out of bounds(1)
对于LongWayToGo的建议问题依旧
对于sunxiaohui的建议出现各种各样的错误,好像行不通。
^_^,为什么会这样?
sunxiaohui 2003-11-07
  • 打赏
  • 举报
回复
如果Query1已经从表中取到记录,不用将Active=false
直接用下面语句即可插入数据
Query1->InsertRecord(ARRAYOFCONST((frmAdd->edName->Text,frmAdd->edsize->Text,frmAdd->edWerght->Text,frmAdd->edArea->Text)));

但需注意字段的类型需和插入的内容类型一致。
xtydyy8881 2003-11-06
  • 打赏
  • 举报
回复
ADOQuery1->Parameters->Items[1]->Value= frmAdd->edName->Text;
试试
wakala 2003-11-05
  • 打赏
  • 举报
回复
楼上的建议,我以前也考虑过,以前名称确实有问题,所以我吧SIZE该改成了SIZE1。
而现在的这个错误应该与名称无关。
borland_boy 2003-11-05
  • 打赏
  • 举报
回复
估计是你的字段名称闹的

建议在前面加上点东西以免和系统保留的重复!

例如
DW_NAME, SDW_IZE1, DW_WEIGHT, DW_AREA
52vc 2003-11-04
  • 打赏
  • 举报
回复
四个值的参数据是否都有值呢?
wakala 2003-11-04
  • 打赏
  • 举报
回复
请各位大侠帮帮忙!
在此先谢过啦
wakala 2003-11-04
  • 打赏
  • 举报
回复
怎么没有人帮我解决这个问题啊?
wakala 2003-11-04
  • 打赏
  • 举报
回复
请各路高手再看看啊!拜托
wakala 2003-11-04
  • 打赏
  • 举报
回复
当然有了,如果没有值的话错误信息就不是这样了
加载更多回复(4)

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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