兄弟们,我是菜鸟,我今天做个tquery组件连接数据库的时候,出先了以下问题,请你们帮帮忙,小弟万分感谢......
[fatal error] dy2.pas(170):could not create output file 'dy2.dcu'
我的代码如下:
unit dy2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, DB, DBTables;type
TForm1 = class(TForm)
Panel1: TPanel;
Query1: TQuery;
GroupBox1: TGroupBox;
Panel2: TPanel;
BitBtn2: TBitBtn;
Label5: TLabel;
Label6: TLabel;
Panel3: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit4: TEdit;
Edit3: TEdit;
Edit2: TEdit;
Edit1: TEdit;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
Query2: TQuery;
BitBtn1: TBitBtn;
Database1: TDatabase;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Close;
end;procedure TForm1.BitBtn2Click(Sender: TObject);
begin
//防止向表中插入null
if (Trim(Edit1.Text )= '')then
begin
ShowMessage('学号不能为空');
Exit;
end;
if (Trim(Edit2.Text )= '')then
begin
ShowMessage('姓名不能为空');
Exit;
end;
if (Trim(Edit3.Text )= '')then
begin
ShowMessage('语文成绩不能为空');
Exit;
end;
if (Trim(Edit4.Text )= '')then
begin
ShowMessage('数学不能为空');
Exit;
end;
with Query1 do
begin
//插入数据
Close;
SQL.Clear;
SQL.Add('insert cj values (:a,:b,:c,:d)');
ParambyName('a').AsString := Trim(Edit1.Text);
ParambyName('b').AsString := Trim(Edit2.Text);
ParambyName('c').AsInteger := StrToInt(Trim(Edit3.Text));
ParambyName('d').AsInteger := StrToInt(Trim(Edit4.Text));
ExecSQL;
end;
//清空数据
Edit1.Clear ;
Edit2.Clear ;
Edit3.Clear ;
Edit4.Clear ;
end;procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
var
m: BooLean;
begin
//防止输入非法字符
m := (key <#8)or(key>#8)and(key < #45)or (key>#46)and(key<#48)or(key>#57);
if m then
key := #0 ;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
with Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from cj');
Open;
end;
end;procedure TForm1.BitBtn4Click(Sender: TObject);
begin
if Not Query2.Bof then
begin
Query2.Prior;
Edit1.Text := Query2.FieldByName('bh').AsString;
Edit2.Text := Query2.FieldByName('xm').AsString;
Edit4.Text := IntToStr(Query2.FieldByName('yw').AsInteger);
Edit3.Text := IntToStr(Query2.FieldByName('sx').AsInteger);
end;
end;procedure TForm1.BitBtn5Click(Sender: TObject);
begin
if Not Query2.Eof then
begin
Query2.Next;
Edit1.Text := Query2.FieldByName('bh').AsString;
Edit2.Text := Query2.FieldByName('xm').AsString;
Edit4.Text := IntToStr(Query2.FieldByName('yw').AsInteger);
Edit3.Text := IntToStr(Query2.FieldByName('sx').AsInteger);
end;
end;procedure TForm1.BitBtn3Click(Sender: TObject);
begin
if Query2.Active = True then
if (Trim(Edit1.Text)<>'')and(Trim(Edit2.Text)<>'')and(Trim(Edit3.Text)<>'')and
(Trim(Edit4.Text)<>'') then
with Query2 do
begin
Try
Edit;
FieldBYName('bh').AsString := Edit1.Text;
FieldBYName('xm').AsString := Edit2.Text;
FieldByName('yw').AsInteger := StrToInt(Edit4.Text);
FieldBYName('sx').AsInteger := StrToInt(Edit3.Text);
Post;
Application.MessageBox('修改成功。','提示',0+64);
Except
Application.MessageBox('系统出错。','提示',0+64);
Close;
end;
end;
end;end.
[fatal error] dy2.pas(170):could not create output file 'dy2.dcu'
我的代码如下:
unit dy2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, DB, DBTables;type
TForm1 = class(TForm)
Panel1: TPanel;
Query1: TQuery;
GroupBox1: TGroupBox;
Panel2: TPanel;
BitBtn2: TBitBtn;
Label5: TLabel;
Label6: TLabel;
Panel3: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit4: TEdit;
Edit3: TEdit;
Edit2: TEdit;
Edit1: TEdit;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
Query2: TQuery;
BitBtn1: TBitBtn;
Database1: TDatabase;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Close;
end;procedure TForm1.BitBtn2Click(Sender: TObject);
begin
//防止向表中插入null
if (Trim(Edit1.Text )= '')then
begin
ShowMessage('学号不能为空');
Exit;
end;
if (Trim(Edit2.Text )= '')then
begin
ShowMessage('姓名不能为空');
Exit;
end;
if (Trim(Edit3.Text )= '')then
begin
ShowMessage('语文成绩不能为空');
Exit;
end;
if (Trim(Edit4.Text )= '')then
begin
ShowMessage('数学不能为空');
Exit;
end;
with Query1 do
begin
//插入数据
Close;
SQL.Clear;
SQL.Add('insert cj values (:a,:b,:c,:d)');
ParambyName('a').AsString := Trim(Edit1.Text);
ParambyName('b').AsString := Trim(Edit2.Text);
ParambyName('c').AsInteger := StrToInt(Trim(Edit3.Text));
ParambyName('d').AsInteger := StrToInt(Trim(Edit4.Text));
ExecSQL;
end;
//清空数据
Edit1.Clear ;
Edit2.Clear ;
Edit3.Clear ;
Edit4.Clear ;
end;procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
var
m: BooLean;
begin
//防止输入非法字符
m := (key <#8)or(key>#8)and(key < #45)or (key>#46)and(key<#48)or(key>#57);
if m then
key := #0 ;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
with Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from cj');
Open;
end;
end;procedure TForm1.BitBtn4Click(Sender: TObject);
begin
if Not Query2.Bof then
begin
Query2.Prior;
Edit1.Text := Query2.FieldByName('bh').AsString;
Edit2.Text := Query2.FieldByName('xm').AsString;
Edit4.Text := IntToStr(Query2.FieldByName('yw').AsInteger);
Edit3.Text := IntToStr(Query2.FieldByName('sx').AsInteger);
end;
end;procedure TForm1.BitBtn5Click(Sender: TObject);
begin
if Not Query2.Eof then
begin
Query2.Next;
Edit1.Text := Query2.FieldByName('bh').AsString;
Edit2.Text := Query2.FieldByName('xm').AsString;
Edit4.Text := IntToStr(Query2.FieldByName('yw').AsInteger);
Edit3.Text := IntToStr(Query2.FieldByName('sx').AsInteger);
end;
end;procedure TForm1.BitBtn3Click(Sender: TObject);
begin
if Query2.Active = True then
if (Trim(Edit1.Text)<>'')and(Trim(Edit2.Text)<>'')and(Trim(Edit3.Text)<>'')and
(Trim(Edit4.Text)<>'') then
with Query2 do
begin
Try
Edit;
FieldBYName('bh').AsString := Edit1.Text;
FieldBYName('xm').AsString := Edit2.Text;
FieldByName('yw').AsInteger := StrToInt(Edit4.Text);
FieldBYName('sx').AsInteger := StrToInt(Edit3.Text);
Post;
Application.MessageBox('修改成功。','提示',0+64);
Except
Application.MessageBox('系统出错。','提示',0+64);
Close;
end;
end;
end;end.
或者你考虑从机器上搜索到相应的文件然后删除应该也能解决问题;