问一个关于数据库的小问题(30分)

  • 主题发起人 主题发起人 elfgirl
  • 开始时间 开始时间
E

elfgirl

Unregistered / Unconfirmed
GUEST, unregistred user!

我用Access建的数据库,用Cbuilder中的Ado中的query组件连接数据库.
我想向数据库追加数据,代码如下:
myQuery->AppendRecord(ARRAYOFCONST((txtItemName->Text,coParentName->Text)))
;
其中txtItemName是文本框的名字,我想把文本框中输入的内容追加到数据库.
但是有错误提示,说数据库的ID字段不能修改.
可是ID是用Access做表的时候自动生成的.请问哪位大哥大姐碰到过这种情况.
用Access,创建表的时候自动出来ID字段,我不想想去管这个ID,但是数据追加不上.
然后我试图赋给ID个值,错误提示说无法修改ID字段.
紧急求助
 
自动增量的ID是不能赋值的呀。。。
 
我知道它不能赋值,我也不想对它赋值。
但是我用上面的语句给这个表中的其他字段赋值的时候,它总提醒我“不能修改ID值”,
其实我根本就没有给ID赋值。要么你试试对access数据库的表追加数据,根本就不行的。
我只想能将我自己建的字段加上内容,根本就不去管这个讨厌的ID.
[:(]你说应该怎么办,我说清楚我的问题了吗?
 
用SQL吧, INSERT时忽略这个字段
 
我没用过Cbuilder,感觉是你的代码有问题,
myQuery->AppendRecord(ARRAYOFCONST((txtItemName->Text,coParentName->Text)))
我想该access表的第一或者第二个字段是id字段。你的代码本身已经尝试在修改id 字段了。
不知道我的想法对不对。
 
我的代码没有问题,至少是适用于别的数据库建的表。但是目前我已经用access建好表了,不想再用sql了。
有没有其他的解决办法,仍然使用原来的表。必要的时候可以附上代码,
你的意思是不是改成sql查询,还是用sqlServe建表
 
我刚刚做程序,也不知道说的对不对,不对不要笑呀!
可以换一种方法呀!
用myQuery.append;
//增加一条空白的记录。
再用myQuery.fieldbyname('字段名).asstring//之类的语句。
这样行吗?
 
我试试吧,谢谢。
我试过了,但是好像记录晚了一步。
好像要下次运行后,这个记录才写入数据库。为什么那
 
怎样才能刷新数据库,
也就是在同一个运行过程中追加数据库的代码一运行,数据就能加到数据库中。
而我现在是要下次运行后,上次的记录才加到数据库中。还有应该用什么代码删去整条记录。
 
myQuery.post
myQuery.Refresh
你再试试看看
 
可以了,谢谢。能不能告诉我删除某一条记录,用什么命令,还要调整其索引号吗?
 
急救,我用myquery->delele();
删除一条记录后为什么数据库中这条记录上标上了“已删除的”字样,为什么数据记录不刷新。
 
“已删除的”字样就是删除了,不信,你关闭这个库,再打开,刚才的纪录就没了
 
那为什么我删除一条记录后再删除其他的记录时,
有错误提示“Dataset not in edit or insert mode”或者是“数据不能及时刷新”
我的代码是
myquery->delele();
myQuery->post();
myQuery->Refresh();
 
delete不需要post!
 
你使用AppendRecord函数必需把Id字段的位置留出来才可以!
我建议你直接使用SQL语句比较好!INSERT INTO ... VALUES(,,,)
 
为什么我用 sql的 select from语句,运行的时候总说from语句错误。
但是在同一个程序的其他部分都可以用的。我用断点跟踪了一下,好像strSQL[data::null]
你们碰到过这总情况吗,急救!!!
 
紧急求救,我在代码中用AnsiString olditemname;定义了一个变量,下句话给他赋值。
olditemname=Label1->Caption;
但是olditemname中总是空的。究竟是为什么呢,我换了很多方式定义都是空的,但是
Label1->Caption是存在的。为什么呢
 
是不是不能定义全局变量,应该怎么定义字符串才能在窗体的各个地方都能用。
问题可能可笑了点,请大家帮我一下
 
大家帮我看看修改数据库的代码对吗,总是提示我“from语句有问题”
strSQL="UPDATE item1";
strSQL=strSQL+" SET itemName='";
strSQL=strSQL+txtItemName->Text;
strSQL=strSQL+"'";
strSQL=strSQL+" WHERE itemName='";
strSQL=strSQL+frmChangeItem->txtPrincipal->Text;
strSQL=strSQL+"'";
myQuery->SQL->Clear();
myQuery->SQL->Add("SELECT * FROM item1");
myQuery->SQL->Add(strSQL);
myQuery-> ExecSQL();
 
后退
顶部