部分源代码如下:
//过程1
procedure TfrmCelloadInOut.N1Click(Sender: TObject);
var
strsql:string;
begin
Application.CreateForm(Tfrmcelloadaddup,frmcelloadaddup);
frmcelloadaddup.Caption := '新增';
if frmcelloadaddup.ShowModal = mrOK then
begin
strsql := 'insert into NQICONDB.dbo.S_control_AssignedCelload(小区名,小区号,时段,门限值) values('
+ #39 + Trim(frmcelloadaddup.dxEdit1.Text) + #39 + ','
+ #39 + Trim(frmcelloadaddup.dxEdit2.Text) + #39 + ','
+ #39 + Trim(frmcelloadaddup.dxEdit3.text) + #39 + ','
+ Trim(frmcelloadaddup.dxEdit4.Text) + ')';
execcon(strsql,FrmDataModlePub.MainConnect);
end;
frmcelloadaddup:=nil; frmcelloadaddup.Free;
qrycelload.Close;
qrycelload.Open;
end;//过程2
procedure TfrmCelloadInOut.N4Click(Sender: TObject);
var
strsql:string;
begin Application.CreateForm(Tfrmcelloadaddbsc, frmcelloadaddbsc);
frmcelloadaddbsc.Caption := '新增';
if frmcelloadaddbsc.ShowModal = mrOK then
begin
// strsql := 'ssss';
// strsql := 'select top 10 * from NQICONDB.dbo.S_control_AssignedTBFLIMIT_BSC';
// showmessage(strsql);
strsql := 'insert into NQICONDB.dbo.S_control_AssignedTBFLIMIT_BSC(BSC,时段,门限值) values('
+ #39 + Trim(frmcelloadaddbsc.dxEdit1.Text) + #39 + ','
+ #39 + Trim(frmcelloadaddbsc.dxEdit2.Text) + #39 + ','
+ Trim(frmcelloadaddup.dxEdit4.Text) + ')';
execcon(strsql,FrmDataModlePub.MainConnect);
end;
frmcelloadaddbsc:=nil;frmcelloadaddbsc.Free;
qrybsc.Close;
qrybsc.Open;
end;
出现如下错误:
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004C14E5 in module 'Project1.exe'. Read of address 0000005C'. Process stopped. Use Step or Run to continue.
出现错误后,蓝色指针停留在过程2的strsql这里。
本人调试经过:
过程一运行是可以的,新增数据正确。过程2中注释strsql插入语句后,strsql前几条被注释的语句是可以运行通过。就是那条插入语句报错。请高人指点!
//过程1
procedure TfrmCelloadInOut.N1Click(Sender: TObject);
var
strsql:string;
begin
Application.CreateForm(Tfrmcelloadaddup,frmcelloadaddup);
frmcelloadaddup.Caption := '新增';
if frmcelloadaddup.ShowModal = mrOK then
begin
strsql := 'insert into NQICONDB.dbo.S_control_AssignedCelload(小区名,小区号,时段,门限值) values('
+ #39 + Trim(frmcelloadaddup.dxEdit1.Text) + #39 + ','
+ #39 + Trim(frmcelloadaddup.dxEdit2.Text) + #39 + ','
+ #39 + Trim(frmcelloadaddup.dxEdit3.text) + #39 + ','
+ Trim(frmcelloadaddup.dxEdit4.Text) + ')';
execcon(strsql,FrmDataModlePub.MainConnect);
end;
frmcelloadaddup:=nil; frmcelloadaddup.Free;
qrycelload.Close;
qrycelload.Open;
end;//过程2
procedure TfrmCelloadInOut.N4Click(Sender: TObject);
var
strsql:string;
begin Application.CreateForm(Tfrmcelloadaddbsc, frmcelloadaddbsc);
frmcelloadaddbsc.Caption := '新增';
if frmcelloadaddbsc.ShowModal = mrOK then
begin
// strsql := 'ssss';
// strsql := 'select top 10 * from NQICONDB.dbo.S_control_AssignedTBFLIMIT_BSC';
// showmessage(strsql);
strsql := 'insert into NQICONDB.dbo.S_control_AssignedTBFLIMIT_BSC(BSC,时段,门限值) values('
+ #39 + Trim(frmcelloadaddbsc.dxEdit1.Text) + #39 + ','
+ #39 + Trim(frmcelloadaddbsc.dxEdit2.Text) + #39 + ','
+ Trim(frmcelloadaddup.dxEdit4.Text) + ')';
execcon(strsql,FrmDataModlePub.MainConnect);
end;
frmcelloadaddbsc:=nil;frmcelloadaddbsc.Free;
qrybsc.Close;
qrybsc.Open;
end;
出现如下错误:
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004C14E5 in module 'Project1.exe'. Read of address 0000005C'. Process stopped. Use Step or Run to continue.
出现错误后,蓝色指针停留在过程2的strsql这里。
本人调试经过:
过程一运行是可以的,新增数据正确。过程2中注释strsql插入语句后,strsql前几条被注释的语句是可以运行通过。就是那条插入语句报错。请高人指点!
解决方案 »
- 短信开发问题,关于AT+CNMI丢失和接收发送冲突
- 如何使用TFileStream实现文件的合并与拆分?
- 请教高手关于数据库锁定的问题
- 成树后,让节点内容自动编码的实现,烦了我一个礼拜了,解决送高分
- 让windows重新启动中碰到的问题???
- 最新发现,一个可以免费下载视频教程的网站
- 怎样使用DELPHI的组件?
- (100分真心相求)正在做一个体育达标记录的软件,要求记录时间到3.55秒这种格式,并支持比较,计算,在数据库中我该怎么存?
- 请看强制类型转换的代码,为什么错误?
- 关于TTreeNode的动态内存分配的问题
- 随意7个整数,如何判断数字是连续的,并显示出连续的形式
- delphi中查询的实现
一眼看去就好像错了哦,应该没眼睛花。呵呵
frmcelloadaddup.Free;
frmcelloadaddup:=nil;
呵呵,应该是这个错误了,可以直接用FreeAndNil。
frmcelloadaddup.Free;
frmcelloadaddup:=nil;
这种写法是错误的。frmcelloadaddup:=nil;frmcelloadaddup.Free; 这样写才是对的。=nil代表将指针清空,.free代表释放指针。释放之后不能再清空了。
错误我已经找到了,是因为 过程2中的strsql语句中出现了没有创建的窗口,所以才报地址错误。