全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1314
推到 Plurk!
推到 Facebook!

dbexpress修改无法存盘

缺席
lucky4wj
一般會員


發表:1
回覆:11
積分:17
註冊:2008-11-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-11-09 08:52:03 IP:58.241.xxx.xxx 未訂閱
设计一个录入成绩的小程序,采用c/s结构,免得收集9个xls文件后再进行合并得到一个成绩文件的麻烦.


开发环境:
delphi7 se dbexpress 2 mysqlopen50 mysql 5.0.67

问题:
修改的数据点击存盘按钮提交后没有报错,再点击读数据按钮刷新一次发觉没有保存.
why?
程序界面 界面见附件.

代码:
//根据考场号 学科读入成绩
procedure TfrmMain.btnRefreshClick(Sender: TObject);
var
commandText:string;
begin
if (cmbSubject.ItemIndex=-1) or (length(txtRoom.text)=0)then //未选择下拉列表
begin
showmessage('请选中要录入成绩的学科或者输入考场号!');
end
else
begin
commandText:=getCommandText(cmbSubject.ItemIndex 2); //获取select命令
dmMysql.smpTest.Active :=false;
if length(txtRoom.text)<>0 then
dmMysql.smpTest.DataSet.CommandText:=commandText txtRoom.text;
//showmessage( dmMysql.smpTest.DataSet.CommandText); //调试
//dmMysql.smpTest.Active :=true;
dmMysql.smpTest.Open;
dmMysql.smpTest.Edit;
grdMain.Refresh;
end;
end;

//存盘按钮
procedure TfrmMain.btnSaveClick(Sender: TObject);
begin
with dmMysql.smpTest do
//if ChangeCount > 0 then
try
Edit;
post;
ApplyUpdates(0);
except
on e: exception do
showmessage('写回数据库时出错: ' e.Message);
end;
end;
附加檔案:49163433720df_delphi.jpg
編輯記錄
lucky4wj 重新編輯於 2008-11-09 08:57:29, 註解 無‧
lucky4wj 重新編輯於 2008-11-11 23:31:37, 註解 無‧
lucky4wj
一般會員


發表:1
回覆:11
積分:17
註冊:2008-11-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-11-11 23:28:37 IP:122.194.xxx.xxx 未訂閱
自己解决了:
原来使用的是 select testno as 考试号,classno as 班级,stuname as 姓名,chinese as 语文,chinesecard as 卡 from score where mid(testno,5,3)='101'之类的语句,
现在修改为 select testno,classno,stuname,chinese,chinesecard from score where mid(testno,5,3)='101' 就OK了.

===>取消 "as xyz" 子句

测试还表明必须全部取消 "as xyz" 子句,不能保留有任何一个才可以.
下面的语句就无法通过.
select testno as 考试号,classno as 班级,stuname as 姓名,chinese,chinesecard from score where mid(testno,5,3)='101'
系統時間:2024-05-03 10:26:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!