回 帖 发 新 帖 刷新版面

主题:有关导入、导出和修改,删除表请GGJJ们指点!!

在下用Delphi7+SQL Server 2000编一小程序,对SQL有一定基础,刚接触学D7大概10天
想通过如图的“清空表”这个按钮把SQL数据库表清空,通过“导入表”按钮把*.txt格式或者*.xls格式的表导入到SQL表,经过处理后的表通过“另存为”按钮保存为Excel表格。现在的问题是“清空表”这个按钮根据书里学的知识已经编好代码,但运行有错,“导入和导出”按钮不知道怎么做,请高手帮看看我写的“清空表”按钮代码错在哪?还有“导入和导出”到底用到那些知识,如详细告诉步骤更好,在此感激不尽!!!!!
代码如下:
unit Unit11;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    ADOConnection1: TADOConnection;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    BitBtn1: TBitBtn;
    Button1: TButton;
    ADOQuery1: TADOQuery;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
  begin
  with ADOQuery1 do
    begin
     Close;
       with SQL do
        begin
        clear;
        Add('delete from mmbb');
        end;
     ExecSQL;
   end ;
   end;
end.

运行“清空表”时错误提示为:
Access violation at address 1F487CAB in module 'msado15.dll' write of address 01118024

http://www.bc-cn.net/bbs/dispbbs.asp?boardID=9&ID=64218&page=1

回复列表 (共2个回复)

沙发

清空表  用的是

TADOconnection 

具体是 
 ADOconnection1.Execute('delete from mmbb');



导出是如下 

use中加入 ExtCtrls
Visible是一个boolean的变量
ad1是dataset 或adoquery


var
  sJbh:string;
  SaveDialog:TSaveDialog;
begin
  //打开Excel
  if not OpenExcel(Visible) then
    exit;

 
  try
  
   

  //写列标题
  Sheet:= WorkBook.Sheets[1];
  DataSetToExcelTitle(ad1,1);
 
  Row1:=Row;
  Col1:=Col;
    //写数据
  with ad1 do
  begin
    First;
    Filtered:=false;
    while not eof do
    begin
      sJbh:=fieldByName('jbh').AsString;
      Sheet:= WorkBook.Sheets[1];
      Row:=Row1;
      Col:=Col1;
      DataSetToExcelData(ad1,1);
      Row1:=Row;
      Col1:=Col;
    end;
  end;    
  Screen.Cursor:=OldCursor;
    //以下是保存
  //if Not Visible then
  //begin
    ePath.Text:=trim(ePath.Text);
    if ePath.Text<>'' then
      WorkBook.SaveAs(FileName:=ePath.Text)
    else
    begin
      SaveDialog:=TSaveDialog.Create(Nil);
      SaveDialog.Filter := 'Microsoft Excel|*.xls';
      Result:=SaveDialog.Execute;
      UpdateWindow(GetActiveWindow);
      //if Result then
        WorkBook.SaveAs(FileName:=SaveDialog.FileName);
      SaveDialog.Free;
    end;
    Excel.Quit;
  //end;
  end;
  finally
    free;
  end;

  show;
end;

板凳


谢谢你!我试一下。到几个论坛发这个贴,只有你能认真地答复,我由衷的感谢!祝好!

我来回复

您尚未登录,请登录后再回复。点此登录或注册