[SOS]大伙请进,帮个忙好吗?为什么我不可以写入数据库SQL~急死了:(

smallflyman 2002-05-15 10:48:00
现在我要做个同学录,现在实现的功能是可以把后面的已经录入的数据显示在特定的窗口里,就是查谁谁的资料就可以显示出来。
但现在我要增加一个功能就是要在前台添加数据直接写入后台数据库(SQL),我用的前台工具是C++ Builder。我应该如何才能实现这样的 功能呢 ?我用的控键是Edit 和ADOQuery 我应该如何去做呢 ?
最重要的是我怎么才能获得Edit里的数据呢?应该怎么用语言来编写出来 ~


可以教教我吗 ?或者把资料发到我的信箱里去~~
非常谢谢您~~!!!
...全文
11 11 点赞 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
smallflyman 2002-05-15
老虎兄谢谢你,现在在编译的时候可以通过了。但当我在Edit1,Edit2,Edit3
中输入谢风 223445 广东韶关南雄 ,再按button(传输到sql数据库的时候)
出现了错误:
Project Projice1.exe raised excetion class EDatabaseError with message 'ADODataSet1:CommandText does not return a result set'.Process stopped.Use Step or Run to continue。

它要返回个什么值啊?
  • 打赏
  • 举报
回复
tiger_qi 2002-05-15
1: 你没有定义SQL_str
String SQL_str="insert into 通讯录 (name,phone,address)
Values ('"+Edit1->Text+"','"+Edit2->Text+"','"+Edit3->Text+"')";

2:ADODataSet1->open();应该是ADODataSet1->Open();

C++大小写是敏感的啊

祝你好运




  • 打赏
  • 举报
回复
smallflyman 2002-05-15
我用的控键是Edit 和ADODataSet 和Button。
我现在就用了你(kingsnation)给我的语句,但结果却出现了错误,语句如下:
SQL_str="insert into 通讯录 (name,phone,address)
Values ('"+Edit1->Text+"','"+Edit2->Text+"','"+Edit3->Text+"')";
ADODataSet1->CommandText=SQL_str;
ADODataSet1->open();

以上语句我是双击button键后输入的,是为了实现语句传输,运行后但出现错误如下:
[C++ Error] Unit2.cpp(26): E2451 Undefined symbol 'SQL_str'
[C++ Error] Unit2.cpp(28): E2316 'open' is not a member of 'TADODataSet'
  • 打赏
  • 举报
回复
kingsnation 2002-05-15
不要用ADOQuery,用ADODataSet
SQL_str="insert into TableName (Field1Name,Field2Name)
Values ('"+Edit1->Text+"','"+Edit2->Text+"')";
ADODataSet->CommandText=SQL_str;
ADODataSet->open();
  • 打赏
  • 举报
回复
mygodness 2002-05-15
用SQL语句应该能实现
  • 打赏
  • 举报
回复
tiger_qi 2002-05-15
我看了帮助,如果你要插入记录不能用adoDataset,你可以用adoquery

楼上给你的例字你可以好好研究一下

  • 打赏
  • 举报
回复
tiger_qi 2002-05-15
不客气啊

如果你执行sql语句用ADODataSet1->ExecSQL();

我记得adoquery是有这个方法的,你先看看行不行
  • 打赏
  • 举报
回复
bearbaba 2002-05-15
你们怎么都不用ADOConnection啊? 我万分奇怪。。。

关注中。。。
  • 打赏
  • 举报
回复
bearbaba 2002-05-15
这是我做底成功底一个例子,希望对你又用

void __fastcall TForm1::Button1Click(TObject *Sender)
{
/*///////////////////////////////////////////////////////////////////
// 函数功能:当用户输入数据后,添加程序先判断是否在数据库中已经存在
// 相同的记录内容,如果没有,则提示要求用户最后确认,如果
// 用户确认,则使用事务处理添加数据
// 执行环境:BCB5 Up1 + SQL SERVER2000 + ADO
// Author: bearbaba
// Create: 20020510
///////////////////////////////////////////////////////////////////*/


Integer j; //申明的变量J用来获取Select查询的结果,如果结果不等于0则说明已经存在相同的记录
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT count(*) FROM BZ_lab WHERE Name = :'"+Edit1->Text+"'");
ADOQuery1->Open();
j=ADOQuery1->RecordCount;

if(j!=1){

if ( Application->MessageBox("确认你的输入吗?", NULL, MB_OKCANCEL)== IDOK){
ADOConnection1->BeginTrans();
try{
ADOQuery1->SQL->Text = "INSERT BZ_lab(EX_No,Name,ShortName,Sign) VALUES(1,'"+Edit1->Text+"','"+Edit2->Text+"','"+Edit3->Text+"')";
ADOQuery1->ExecSQL();
}catch(...)
{
ADOConnection1->RollbackTrans();
}
ADOConnection1->CommitTrans();
ADOTable1->Refresh();
}
}
else
ShowMessage("已经存在相同的记录,请求被拒绝!");
}
  • 打赏
  • 举报
回复
gmy 2002-05-15
我也是碰到这个问题,不知道怎样解决,大家来帮忙一下吧
  • 打赏
  • 举报
回复
smallflyman 2002-05-15
大家快来帮我啊~ 真好急
  • 打赏
  • 举报
回复
相关推荐
发帖
数据库及相关技术
创建于2007-08-02

1159

社区成员

C++ Builder 数据库及相关技术
申请成为版主
帖子事件
创建了帖子
2002-05-15 10:48
社区公告
暂无公告