主页
Top.Mail.Ru Yandeks.Metrika
论坛:“基地”;
当前存档:2002.04.25;
下载:[xml.tar.bz2];

向下

IBQuery + IBUpdateSQL绑定存在一个难以理解的问题 找到类似的分支


Lt. Dennis   (2002-04-03 16:46) [0]

这里有问题..
有人可以帮忙吗?

IBQuery + IBUpdateSQL绑定存在一个难以理解的问题。
(可编辑的查询)
在属性ModifySQL组件IBUpdateSQL规定:



更新NEW_TABLE
SET L2 =:L2,L3 =:L3
在WHERE
L2 =:OLD_L2

确认更改时,会发生错误:
“带消息的EInterBaseError:UPDATE FAILED”。
我找不到这个的原因。

如果有人有IBQuery + IBUpdateSQL如何工作的例子
请发送到这里:lt_dennis@moldova.cc

我会尽可能多地尝试......

表单文件的一部分(* .dfm)

对象IBUpdateSQL1:TIBUpdateSQL
RefreshSQL.Strings =(
“选择”
“L2”
“L3”
“来自new_table”
“去哪儿”
“L2 =:L2”)
ModifySQL.Strings =(
“更新new_table”
“设置”
“L2 =:L2,”
“L3 =:L3”
“去哪儿”
“L2 =:OLD_L2”)
InsertSQL.Strings =(
“插入new_table”
“(L2,L3)”
“值”
“(:L2,:L3)”)
DeleteSQL.Strings =(
“从new_table删除”
“去哪儿”
“L2 =:OLD_L2”)
左= 264
顶部= 16
结束
对象IBQuery1:TIBQuery
Database = IBDatabase1
交易= IBTransaction1
AfterInsert = IBQuery1AfterInsert
BeforeDelete = IBQuery1BeforeDelete
BeforeEdit = IBQuery1BeforeEdit
BeforePost = IBQuery1BeforePost
CachedUpdates = True
SQL.Strings =(
“从NEW_TABLE中选择L2,L3”)
UpdateObject = IBUpdateSQL1
左= 96
顶部= 32
结束
object DataSource1:TDataSource
DataSet = IBQuery1
左= 368
顶部= 168
结束


表New_Table:

L2 VARCHAR(100),
L3 FLOAT

来源片段:
履行
使用IB;
{$ R * .DFM}
var Data:String;

过程TForm1.Button1Click(Sender:TObject);
开始
IBQuery1.Open;
结束;

过程TForm1.Button2Click(Sender:TObject);
开始
IBQuery1.Close;
结束;

procedure TForm1.IBQuery1AfterInsert(DataSet:TDataSet);
开始
IBUpdateSQL1.SetParams(ukInsert);
结束;

procedure TForm1.IBQuery1BeforeDelete(DataSet:TDataSet);
开始
IBUpdateSQL1.SetParams(ukDelete);
结束;

procedure TForm1.IBQuery1BeforePost(DataSet:TDataSet);
开始
尝试
//IBUpdateSQL1.SetParams(ukModify);
//IBUpdateSQL1.Query[ukModify].Close;
//IBUpdateSQL1.Query[ukModify].ParamByName("L2").AsString:=IBQuery1.FieldByName("L2").AsString;
//IBUpdateSQL1.Query[ukModify].ParamByName("L3").AsFloat:=IBQuery1.FieldByName("L3").AsFloat;
//IBUpdateSQL1.Query[ukModify].Prepare;
//IBTransaction2.StartTransaction;
//IBUpdateSQL1.Apply(ukModify);
//IBUpdateSQL1.Query[ukModify].Open;
//IBTransaction2.Commit;
//IBUpdateSQL1.Query[ukModify].Close;



on Er:EIBInterBaseError do
ShowMessage(IntToStr(Er.SQLCode));
结束;
结束;

过程TForm1.Button3Click(Sender:TObject);
开始
如果IBQuery1.Active
然后是IBQuery1.ApplyUpdates;
结束;

procedure TForm1.IBQuery1BeforeEdit(DataSet:TDataSet);
开始
数据:= IBQuery1.FieldByName(“L2”)。AsString;
结束;

结束。



Fareader   (2002-04-03 18:54) [1]

错误出在哪里? 如果这是程序TForm1.Button3Click,
然后检查是否应该将某些内容放入缓存中:

如果IBQuery1.updatesPending然后IBQuery1.ApplyUpdates

这是什么意思
数据:= IBQuery1.FieldByName(“L2”)。AsString;

逐步跟踪代码并在其生成的生成器中写入错误。



Страницы: 1 整个分支

论坛:“基地”;
当前存档:2002.04.25;
下载:[xml.tar.bz2];

楼上





内存:0.55 MB
时间:0.019 c
1-80844
Lamazavr
2002-04-12 20:15
2002.04.25
单击按钮时,启动了Wav文件


14-81077
dimich
2002-03-19 08:54
2002.04.25
XP的问题。


14-81044
Viktor Scherbakov
2002-03-19 13:44
2002.04.25
常量表达式


1-80853
阿列克谢
2002-04-13 10:27
2002.04.25
BDE ???


4-81116
歌曲
2002-02-19 17:08
2002.04.25
WM_POWERBROADCAST抓住铁路。 模式和返回





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法语
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日本 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 淡米尔文 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский