我作了一个登陆界面,登陆的内容是仿一个例子作的。例子的代码是
………………
implementationuses Main, PublicUse;{$R *.dfm}procedure TFrmAdoconnect.SpeedButton4Click(Sender: TObject);
var lv_str_connect:string;
begin
lv_str_connect:='Provider=SQLOLEDB.1;Password=';
lv_str_connect:=lv_str_connect+trim(edit4.Text);
lv_str_connect:=lv_str_connect+';Persist Security Info=True;User ID=';
lv_str_connect:=lv_str_connect+trim(edit3.Text);
lv_str_connect:=lv_str_connect+';Initial Catalog=';
lv_str_connect:=lv_str_connect+trim(edit2.Text);
lv_str_connect:=lv_str_connect+';Data Source=';
lv_str_connect:=lv_str_connect+trim(edit1.Text); //连接字符串赋值
frmmain.adoconnection1.Connected :=false;
frmmain.adoconnection1.ConnectionString:=lv_str_connect;
try
frmmain.adoconnection1.Connected :=true; //连接数据库
gv_str_dataip:=trim(edit1.Text);
gv_str_dataname:=trim(edit2.Text);
gv_str_datauser:=trim(edit3.Text);
gv_str_datapwd:=trim(edit4.Text);
{WriteRegist('dataip',edit1.Text);
WriteRegist('dataname',edit2.Text);
WriteRegist('datauser',edit3.Text);
WriteRegist('datapwd',edit4.Text); }
application.MessageBox('数据库连接成功','提示',MB_OK + MB_SYSTEMMODAL);
close;
except
application.MessageBox('数据库连接未成功','提示',MB_OK+ MB_ICONQUESTION+ MB_SYSTEMMODAL);
end;
……………………
我模仿的例子作的代码是
………………
implementation
uses unit2,main;
{$R *.dfm}procedure TForm24.Button1Click(Sender: TObject);
begin
close;
end;procedure TForm24.BitBtn1Click(Sender: TObject);
var lv_str_connect:string;
begin
lv_str_connect:='Provider=SQLOLEDB.1;Password=';
lv_str_connect:=lv_str_connect+trim(edit4.Text);
lv_str_connect:=lv_str_connect+';Persist Security Info=True;User ID=';
lv_str_connect:=lv_str_connect+trim(edit3.Text);
lv_str_connect:=lv_str_connect+';Initial Catalog=';
lv_str_connect:=lv_str_connect+trim(edit2.Text);
lv_str_connect:=lv_str_connect+';Data Source=';
lv_str_connect:=lv_str_connect+trim(edit1.Text); //连接字符串赋值
form10.ADOConnection1.Connected :=false;
form10.ADOConnection1.ConnectionString:=lv_str_connect;
try
form10.ADOConnection1.Connected :=true; //连接数据库
gv_str_dataip:=trim(edit1.Text);
gv_str_dataname:=trim(edit2.Text);
gv_str_datauser:=trim(edit3.Text);
gv_str_datapwd:=trim(edit4.Text);
application.MessageBox('数据库连接成功','提示',MB_OK + MB_SYSTEMMODAL);
close;
except
application.MessageBox('数据库连接未成功','提示',MB_OK+ MB_ICONQUESTION+ MB_SYSTEMMODAL);
end;
end;
……………………
一运行就告诉我
Access violation at address 004f7941 in module'project2.exe'.Read of address 000002F0
请问这是怎么回事啊。请各位帮帮小弟我,先谢谢了。
………………
implementationuses Main, PublicUse;{$R *.dfm}procedure TFrmAdoconnect.SpeedButton4Click(Sender: TObject);
var lv_str_connect:string;
begin
lv_str_connect:='Provider=SQLOLEDB.1;Password=';
lv_str_connect:=lv_str_connect+trim(edit4.Text);
lv_str_connect:=lv_str_connect+';Persist Security Info=True;User ID=';
lv_str_connect:=lv_str_connect+trim(edit3.Text);
lv_str_connect:=lv_str_connect+';Initial Catalog=';
lv_str_connect:=lv_str_connect+trim(edit2.Text);
lv_str_connect:=lv_str_connect+';Data Source=';
lv_str_connect:=lv_str_connect+trim(edit1.Text); //连接字符串赋值
frmmain.adoconnection1.Connected :=false;
frmmain.adoconnection1.ConnectionString:=lv_str_connect;
try
frmmain.adoconnection1.Connected :=true; //连接数据库
gv_str_dataip:=trim(edit1.Text);
gv_str_dataname:=trim(edit2.Text);
gv_str_datauser:=trim(edit3.Text);
gv_str_datapwd:=trim(edit4.Text);
{WriteRegist('dataip',edit1.Text);
WriteRegist('dataname',edit2.Text);
WriteRegist('datauser',edit3.Text);
WriteRegist('datapwd',edit4.Text); }
application.MessageBox('数据库连接成功','提示',MB_OK + MB_SYSTEMMODAL);
close;
except
application.MessageBox('数据库连接未成功','提示',MB_OK+ MB_ICONQUESTION+ MB_SYSTEMMODAL);
end;
……………………
我模仿的例子作的代码是
………………
implementation
uses unit2,main;
{$R *.dfm}procedure TForm24.Button1Click(Sender: TObject);
begin
close;
end;procedure TForm24.BitBtn1Click(Sender: TObject);
var lv_str_connect:string;
begin
lv_str_connect:='Provider=SQLOLEDB.1;Password=';
lv_str_connect:=lv_str_connect+trim(edit4.Text);
lv_str_connect:=lv_str_connect+';Persist Security Info=True;User ID=';
lv_str_connect:=lv_str_connect+trim(edit3.Text);
lv_str_connect:=lv_str_connect+';Initial Catalog=';
lv_str_connect:=lv_str_connect+trim(edit2.Text);
lv_str_connect:=lv_str_connect+';Data Source=';
lv_str_connect:=lv_str_connect+trim(edit1.Text); //连接字符串赋值
form10.ADOConnection1.Connected :=false;
form10.ADOConnection1.ConnectionString:=lv_str_connect;
try
form10.ADOConnection1.Connected :=true; //连接数据库
gv_str_dataip:=trim(edit1.Text);
gv_str_dataname:=trim(edit2.Text);
gv_str_datauser:=trim(edit3.Text);
gv_str_datapwd:=trim(edit4.Text);
application.MessageBox('数据库连接成功','提示',MB_OK + MB_SYSTEMMODAL);
close;
except
application.MessageBox('数据库连接未成功','提示',MB_OK+ MB_ICONQUESTION+ MB_SYSTEMMODAL);
end;
end;
……………………
一运行就告诉我
Access violation at address 004f7941 in module'project2.exe'.Read of address 000002F0
请问这是怎么回事啊。请各位帮帮小弟我,先谢谢了。
解决方案 »
- delphi程序编译出错. [Error] Unit1.pas(74): Declaration of 'training' differs from previous declaration
- 网络数据库开发
- 超市的哪种打印是怎样实现的(在QR中)?
- 请问大家,在DELPHI的报表工具QReport/rave中也是用FOR循环控制来写出任意复杂的报表,还是直接用控件关联做报表??
- ado+Acess进行数据库操作,内存不断增加,请问如果是适时系统,怎么办? 大分相送!
- 如何远程访问不同地区的数据库,实现数据的汇总!在线等待!
- 我想做一个工资管理系统啊?哪里有源代码看啊?
- 麻烦帮我看看为什么?
- 在sqlserver中,怎样获得所有的用户名
- (const char *)&p转化为delphi语言该是什么?
- 没有找到QTINTF.DLL,求助?!
- Delphi 调用 Excel (分不够可以加的!)
form10.ADOConnection1.Connected :=false; 改为:
form10 := Tform10.Create(self); // 先建立form10
form10.ADOConnection1.Connected :=false;
不会Form10所对应的unit 为main吧。
delphi在创建变量时不会自动调用create函数。所以你必须在使用对象之前
确保该对象已经存在。例如:
frmA:TForm;
这一句只是标明了这样一个变量,实际的frmA在内存中是不是存在的。所以你必须先执行这样一行语句:
frmA:=TForm.create(nil); //一般nil或者self都可以;
这样frmA才是真正的被创建了。才可以使用。
一般来说如果你访问不存在的对象的话就会出现:Access violation 的错误。
好好利用ADO控件;用ADOQUERY加个SQL语句就行了