delphi数据库的增删改查
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
delphi数据库的增删改查
查询:
V ar strSQL:String;
begin
strSQL:='Select
Checkupid,CustomCode,CustomName,CheckupDate,LeftMoney,CurrMoney,OperatorName,Note from T_Fee_CheckupRecord Where ';
strSQL:=strSQL+' CheckupDate between '
+''''+FormatDateTime('yyyy-mm-dd', DateTPbegin.DateTime)+''''+' and '
+''''+FormatDateTime('yyyy-mm-dd', DateTPend.DateTime+1)+'''';
if not (Trim(edtCustomCode.Text)='') then
begin
strSQL:=strSQL+' and CustomCode like '+''''+Trim(edtCustomCode.Text)+'''' end;
if not (Trim(edtCustomName.Text)='') then
begin
strSQL:=strSQL+' and CustomName like '+''''+Trim(edtCustomName.Text)+'''' end;
//ShowMessage(strSQL);
RefleshGrid(strSQL);
end;
其中⾃定义的函数:
procedure RefleshGrid(strSQL:String);
begin
with DataMD.ADOQuery1 do
begin
Close;
SQL.Clear ;
SQL.add(strSQL);
Open;
end;
end;
procedure ExeSQL(strSQL:String);
增:
procedure TfrmImport.sButton1Click(Sender: TObject);
begin
frmInportAdd.Showmodal;
RefleshGrid('Select * from T_Stock_ImportRecord Order by CreateDate DESC'); end;
⾃定义的函数:
procedure RefleshGrid(strSQL:String);
begin
with DataMD.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.add(strSQL);
Open;
end;
end;
var
frmInportAdd: TfrmInportAdd;
function TCustomForm.ShowModal: Integer;
var
WindowList: Pointer;
SaveFocusCount: Integer;
SaveCursor: TCursor;
SaveCount: Integer;
ActiveWindow: HWnd;
begin
CancelDrag;
if V isible or not Enabled or (fsModal in FFormState) or
(FormStyle = fsMDIChild) then
raise EInvalidOperation.Create(SCannotShowModal);
if GetCapture <> 0 then SendMessage(GetCapture, WM_CANCELMODE, 0, 0); ReleaseCapture; Application.ModalStarted;
try
Include(FFormState, fsModal);
ActiveWindow := GetActiveWindow;
SaveFocusCount := FocusCount;
Screen.FSaveFocusedList.Insert(0, Screen.FFocusedForm);
Screen.FFocusedForm := Self;
SaveCursor := Screen.Cursor;
Screen.Cursor := crDefault;
SaveCount := Screen.FCursorCount;
WindowList := DisableTaskWindows(0);
try
Show;
try
SendMessage(Handle, CM_ACTIV A TE, 0, 0); ModalResult := 0;
repeat
Application.HandleMessage;
if Application.FTerminate then ModalResult := mrCancel else if ModalResult <> 0 then CloseModal;
until ModalResult <> 0;
Result := ModalResult;
SendMessage(Handle, CM_DEACTIV A TE, 0, 0);
if GetActiveWindow <> Handle then ActiveWindow := 0; finally
Hide;
end;
finally
if Screen.FCursorCount = SaveCount then
Screen.Cursor := SaveCursor
else Screen.Cursor := crDefault; EnableTaskWindows(WindowList);
if Screen.FSaveFocusedList.Count > 0 then
begin
Screen.FFocusedForm := Screen.FSaveFocusedList.First; Screen.FSaveFocusedList.Remove(Screen.FFocusedForm); end else Screen.FFocusedForm := nil;
if ActiveWindow <> 0 then SetActiveWindow(ActiveWindow); FocusCount := SaveFocusCount;
Exclude(FFormState, fsModal);
end;
finally
Application.ModalFinished;
end;
end;
删:
procedure TfrmImport.sButton3Click(Sender: TObject);
V ar tmp,str:String;
begin
DeleteCurrRecord();
tmp:=FloatToStr(GetCurrNum(SelectID));
str:='Update T_Stock_Info Set CurrNum='+''''+tmp+''''+' Where StockCode='+''''+SelectID+'''';
ExeSQL(str); //更新库存数量
//ShowMessage('删除成功,更新数据库成功');
Close;
end;
⾃定义的:
Procedure DeleteCurrRecord();
//var strSQL:String;
begin
if( MessageDlg('确定要删除此记录吗?删除后将不可恢复!',mtwarning,[mbyes,mbno],0)=mryes) then
begin
Try
DataMD.ADOQuery1.Delete;
ShowMessage('删除数据成功');
Except
end;
End;
Function GetCurrNum(StockCode:String):Double; //获得现库存数量
V ar str:String;
tmpQuery:TADOQuery;
tmpIMNum,tmpOUTNum,tmpDRNum:Double;
begin
str:='SELECT SUM(Num) AS IMNum FROM T_Stock_ImportRecord WHERE StockCode='+''''+StockCode+''''; //ShowMessage(str);
tmpQuery:=TADOQuery.Create(nil); //查询固定⽤法;
tmpQuery.Connection :=DataMD.ADOConDB;
tmpQuery.SQL.Add(str);
tmpQuery.Open;
if tmpQuery.Eof then tmpIMNum:=0 else tmpIMNum:=(tmpQuery.FieldByName('IMNum').AsFloat); tmpQuery.Free;
str:='SELECT SUM(Num) AS OUTNum FROM T_Stock_OutportRecord WHERE StockCode='+''''+StockCode+''''; //ShowMessage(str);
tmpQuery:=TADOQuery.Create(nil); //查询固定⽤法;
tmpQuery.Connection :=DataMD.ADOConDB;
tmpQuery.SQL.Add(str);
tmpQuery.Open;
if tmpQuery.Eof then tmpOUTNum:=0 else tmpOUTNum:=(tmpQuery.FieldByName('OUTNum').AsFloat); tmpQuery.Free;
str:='SELECT Sum(Num) AS DRNum FROM T_Stock_DamageRecord WHERE StockCode='+''''+StockCode+''''; tmpQuery:=TADOQuery.Create(nil); //查询固定⽤法;
tmpQuery.Connection :=DataMD.ADOConDB;
tmpQuery.SQL.Add(str);
tmpQuery.Open;
if tmpQuery.Eof then tmpDRNum:=0 else tmpDRNum:=(tmpQuery.FieldByName('DRNum').AsFloat); tmpQuery.Free;
Result:=tmpIMNum-tmpOUTNum-tmpDRNum; //现库存=⼊库-出库-损坏
end;
改:
procedure TfrmImport.N2Click(Sender: TObject);
V ar ID:String;
begin
ID:=DataSource1.DataSet.FieldByName('RegID').AsString;
//ShowMessage(ID);
frmImportDetail.IP_ID:=ID;
frmImportDetail.ShowModal;
FormShow(nil);
end;
⾃定义的:
procedure TfrmImport.FormShow(Sender: TObject);
begin
RefleshGrid('Select * from T_Stock_ImportRecord Order by CreateDate DESC');
end;。