+ -
当前位置:首页 → 问答吧 → 急~!!!分数全给了~

急~!!!分数全给了~

时间:2011-12-06

来源:互联网

在进行数据修改时,都会发生varchar向int转化时失败
求高手解决
[code=Delphi(Pascal)][/code]unit xue_gai;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons,DB,ADODB;
type
  TOperState = (osAppend,osEdit);

  TxueRecord = packed record
  XueHao:string;
  JiaZhi:string;
  Xming:string;
  XingBie:string;
  BanJi:string;
  JiGuan:string;
  NianL:string;
  end;
type
  Tnew_edit = class(TForm)
  lbl1: TLabel;
  edt_XueHao: TEdit;
  lbl2: TLabel;
  edt_jiazhi: TEdit;
  lbl3: TLabel;
  edt_xming: TEdit;
  lbl4: TLabel;
  edt_xingbie: TEdit;
  lbl5: TLabel;
  edt_banji: TEdit;
  lbl6: TLabel;
  edt_nianl: TEdit;
  lbl7: TLabel;
  edt_jiguan: TEdit;
  btn1: TBitBtn;
  btn2: TBitBtn;
  procedure FormShow(Sender: TObject);
  procedure FormCreate(Sender: TObject);
  procedure btn1Click(Sender: TObject);
  procedure btn2Click(Sender: TObject);
  private
  xueRecord:TxueRecord;
  AQuery:TADOQuery;
  FxueNO:Integer;
  procedure SetxueNo(NO:string);
  { Private declarations }
  public
  OperState:TOperState;
  property XueNo:string write SetxueNo;
  { Public declarations }
  end;

var
  new_edit: Tnew_edit;

implementation
  uses xueji_BJ, main;
{$R *.dfm}

{ Tnew_edit }

procedure Tnew_edit.SetxueNo(NO: string);
begin

end;

procedure Tnew_edit.FormShow(Sender: TObject);
begin
if OperState = osEdit then
 begin
  with AQuery do
  begin
  Close;
  SQL.Clear;
  SQL.Add('select * from XueSheng where XueHao=:xueNO');
  Parameters.ParamByName('xueNO').Value := FxueNO;
  Open;
  edt_XueHao.Text := fieldByName('XueHao').AsString;
  edt_jiazhi.Text := fieldByName('JiaZhi').AsString;
  edt_xming.Text := fieldByName('Xming').AsString;
  edt_xingbie.Text:= fieldByName('XingBie').AsString;
  edt_banji.Text:= fieldByName('BanJi').AsString;
  edt_jiguan.Text:= fieldByName('jiguan').AsString;
  edt_nianl.Text := fieldByName('nianl').AsString;

  with xueRecord do
  begin
  XueHao := fieldByName('XueHao').AsString;
  JiaZhi := fieldByName('JiaZhi').AsString;
  Xming := fieldByName('Xming').AsString;
  XingBie := fieldByName('XingBie').AsString;
  BanJi := fieldByName('BanJi').AsString;
  JiGuan := fieldByName('JiGuan').AsString;
  NianL := fieldByName('NianL').AsString;
  end;
  end;
 end;
end;

procedure Tnew_edit.FormCreate(Sender: TObject);
begin
AQuery := TADOQuery.Create(nil);
AQuery.Connection := MainForm.ADOConnection1;
end;

procedure Tnew_edit.btn1Click(Sender: TObject);
var
  SQLStr:string;
begin
  if OperState = osAppend then
  begin
  with AQuery do
  begin
  Close;
  SQL.Clear;
  SQL.Add('insert into XueSheng(XueHao,JiaZhi,Xming,XingBie,BanJi,JiGuan,NianL)values(:Xuehao,:JiaZhi,:Xming,:XingBie,:BanJi,:JiGuan,:NianL)');
  Parameters.ParamByName('XueHao').Value:=Trim(edt_XueHao.Text);
  Parameters.ParamByName('JiaZhi').Value :=Trim(edt_jiazhi.Text);
  Parameters.ParamByName('Xming').Value :=Trim(edt_xming.Text);
  Parameters.ParamByName('XingBie').Value:=Trim(edt_xingbie.Text);
  Parameters.ParamByName('BanJi').Value :=Trim(edt_banji.Text);
  Parameters.ParamByName('JiGuan').Value :=Trim(edt_jiguan.Text);
  Parameters.ParamByName('NianL').Value :=Trim(edt_nianl.Text);
  ExecSQL;


  end;
  end;
  if OperState = osEdit then
  begin
  with AQuery do
  begin
  Close;
  SQL.Clear;
  SQLStr :='update XueSheng set';
  if xueRecord.XueHao <> Trim(edt_XueHao.Text) then
  SQLStr := SQLStr + ' XueHao='+ QuotedStr(Trim(edt_XueHao.Text))+',';
  if xueRecord.JiaZhi <> Trim(edt_jiazhi.Text) then
  SQLStr := SQLStr + ' JiaZhi='+ QuotedStr(Trim(edt_jiazhi.Text))+',';
  if xueRecord.Xming <> Trim(edt_xming.Text) then
  SQLStr := SQLStr + ' Xming='+ QuotedStr(Trim(edt_xming.Text))+',';
  if xueRecord.XingBie <> Trim(edt_xingbie.Text) then
  SQLStr := SQLStr + ' XingBie='+ QuotedStr(Trim(edt_xingbie.Text))+',';
  if xueRecord.BanJi <> Trim(edt_banji.Text) then
  SQLStr := SQLStr + ' BanJi='+ QuotedStr(Trim(edt_banji.Text))+',';
  if xueRecord.JiGuan <> Trim(edt_jiguan.Text) then
  SQLStr := SQLStr + ' jiguan='+ QuotedStr(Trim(edt_jiguan.Text))+',';
  if xueRecord.NianL <> Trim(edt_nianl.Text) then
  SQLStr := SQLStr + ' NianL='+ QuotedStr(Trim(edt_nianl.Text))+','
  else
  SQLStr := Copy(SQLStr,1,Length(SQLStr)-1);
  SQLStr := SQLStr + 'where XueHao=' + IntToStr(FxueNO);
  SQL.Add(SQLStr);
  ExecSQL;
  end;
  end;
  Close;
end;

procedure Tnew_edit.btn2Click(Sender: TObject);
begin
Close;
end;

end.

作者: HCDA_HCDP   发布时间: 2011-12-06

怎么全是AsString,QuotedStr
你要根据你表中字段的类型来使用啊

作者: kaikai_kk   发布时间: 2011-12-06

热门下载

更多