home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 December / Chip_2001-12_cd1.bin / zkuste / delphi / kompon / d3456 / ACF10CE.ZIP / NyBckTest.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2001-09-10  |  6.1 KB  |  235 lines

  1. //please compile this project And Open windows
  2. //explorer and Click test.exe.
  3. //Because ▌f you run with Delphi and import record Key violation Error raised.
  4. //Firs time you do click export,after delete 2 or 3 record and click import.
  5. //Don't raise "key violation" error.
  6.  
  7. unit NyBckTest;
  8.  
  9. interface
  10.  
  11. uses
  12.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  13.   Db, StdCtrls, DBCtrls, Gauges, ExtCtrls, Grids, DBGrids, DBTables, NyBck;
  14.  
  15.  
  16.  
  17. type
  18.   TForm1 = class(TForm)
  19.     Table1: TTable;
  20.     DataSource1: TDataSource;
  21.     DBGrid1: TDBGrid;
  22.     Table1Alphafield: TStringField;
  23.     Table1Integerfield: TFloatField;
  24.     DBNavigator1: TDBNavigator;
  25.     Gauge1: TGauge;
  26.     Label1: TLabel;
  27.     DBMemo1: TDBMemo;
  28.     Label2: TLabel;
  29.     Memo1: TMemo;
  30.     Label3: TLabel;
  31.     Button1: TButton;
  32.     Button2: TButton;
  33.     SaveDialog1: TSaveDialog;
  34.     OpenDialog1: TOpenDialog;
  35.     NyBck1: TNyBck;
  36.     Table1Alpha2: TStringField;
  37.     Table1Memofield: TMemoField;
  38.     Table1Calcfield: TStringField;
  39.     procedure FormCreate(Sender: TObject);
  40.     procedure FormDestroy(Sender: TObject);
  41.     procedure Button1Click(Sender: TObject);
  42.     procedure Button2Click(Sender: TObject);
  43.     procedure NyBck1AfterCloseTable(Sender: TObject);
  44.     procedure NyBck1BeforeCloseTable(Sender: TObject);
  45.     procedure NyBck1BeforeOpenTable(Sender: TObject);
  46.     procedure NyBck1AfterOpenTable(Sender: TObject);
  47.     procedure NyBck1AfterExport(Sender: TObject);
  48.     procedure NyBck1AfterImport(Sender: TObject);
  49.     procedure NyBck1BeforeExport(Sender: TObject);
  50.     procedure NyBck1BeforeImport(Sender: TObject);
  51.     procedure NyBck1AddRecord(Sender: TObject);
  52.     procedure NyBck1ImportProgress(Sender: TObject; AProgress: Integer;
  53.       var StopIt: Boolean);
  54.     procedure NyBck1ExportProgress(Sender: TObject; AProgress: Integer;
  55.       var StopIt: Boolean);
  56.     procedure NyBck1ImportError(Sender: TObject; Mess: String;
  57.       RecNo: Integer; var Response: TNyBckErrorResponse);
  58.     procedure Table1CalcFields(DataSet: TDataSet);
  59.   private
  60.     { Private declarations }
  61.   public
  62.     { Public declarations }
  63.   end;
  64.  
  65. var
  66.   Form1: TForm1;
  67.    Addyes, addno: integer;
  68.  
  69. implementation
  70.  
  71. {$R *.DFM}
  72.  
  73.  
  74. procedure TForm1.FormCreate(Sender: TObject);
  75. begin
  76. table1.DatabaseName:=extractfilepath(application.exename);//program²n exe dosyas²n²n oldu≡u dizin.
  77. table1.Active:=true;
  78.  
  79. end;
  80.  
  81. procedure TForm1.FormDestroy(Sender: TObject);
  82. begin
  83. table1.Refresh;
  84. table1.close;
  85. end;
  86.  
  87.  
  88. procedure TForm1.Button1Click(Sender: TObject);
  89. label lab1;
  90. begin
  91. lab1:
  92.    if Savedialog1.execute then
  93.    begin
  94.     if FileExists(SaveDialog1.FileName) then
  95.       if MessageDlg(Format('%s file already  exist. Do you want to replace them?', [SaveDialog1.FileName]),
  96.         mtConfirmation, [mbyes,mbno], 0) <> idyes then goto lab1;
  97.  
  98.     addyes:=0; //reset
  99.  
  100.  
  101.     table1.Close;
  102.     gauge1.Visible:=True;
  103.     label1.visible:=true;
  104.   try
  105.     NyBck1.TextFile:=Savedialog1.FileName;
  106.     NyBck1.Exprt; //Dataset To Text file (and *.mem) file
  107.  
  108.   finally
  109.    MessageDlg(IntToStr(Addyes) + '  Records exported.   ', mtInformation, [mbOK], 0);
  110.     label1.Visible:=false;
  111.     gauge1.Visible:=false;
  112.   end;
  113.  
  114.  
  115.     table1.open;
  116.     table1.First;
  117.   end
  118.   else //If you press Cancel button
  119.  
  120. end;
  121.  
  122. procedure TForm1.Button2Click(Sender: TObject);
  123. begin
  124.   if opendialog1.execute then
  125.   begin
  126.     addyes:=0;//reset
  127.     addno :=0;//reset
  128.     table1.Close;
  129.     label1.Visible:=true;
  130.     gauge1.Visible:=True;
  131.   try
  132.     NyBck1.TextFile:=opendialog1.FileName;
  133.     NyBck1.imprt; //Text file to Dataset
  134.     addyes:=addyes-addno;
  135.   finally
  136.   MessageDlg(IntToStr(Addyes) + '  Records imported, '+inttostr(addno)+' Record don"t imported because already in table.', mtInformation, [mbOK], 0);
  137.     label1.visible:=false;
  138.     gauge1.Visible:=false;
  139.   end;
  140.  
  141.  
  142.    table1.open;
  143.     table1.First;
  144.    end
  145.    else // if you press cancel.
  146.  
  147.  
  148. end;
  149.  
  150. procedure TForm1.NyBck1AfterCloseTable(Sender: TObject);
  151. begin
  152. memo1.lines.Add('After Close Table..OK');
  153. end;
  154.  
  155. procedure TForm1.NyBck1BeforeCloseTable(Sender: TObject);
  156. begin
  157. memo1.lines.Add('Before Close Table..Ok');
  158. end;
  159.  
  160. procedure TForm1.NyBck1BeforeOpenTable(Sender: TObject);
  161. begin
  162. memo1.lines.Add('Before Open Table..Ok');
  163. end;
  164.  
  165. procedure TForm1.NyBck1AfterOpenTable(Sender: TObject);
  166. begin
  167. memo1.lines.Add('After Open Table..Ok');
  168. end;
  169.  
  170. procedure TForm1.NyBck1AfterExport(Sender: TObject);
  171. begin
  172. memo1.lines.Add('After Export..Ok');
  173. end;
  174.  
  175. procedure TForm1.NyBck1AfterImport(Sender: TObject);
  176. begin
  177. memo1.lines.Add('After import..Ok');
  178. end;
  179.  
  180. procedure TForm1.NyBck1BeforeExport(Sender: TObject);
  181. begin
  182. gauge1.MaxValue:=NyBck1.TotalRecord;
  183. memo1.lines.Add('Before Export..Ok');
  184. end;
  185.  
  186. procedure TForm1.NyBck1BeforeImport(Sender: TObject);
  187. begin
  188. gauge1.MaxValue:=NyBck1.TotalRecord;
  189. memo1.lines.Add('Before ▌mport..Ok');
  190. end;
  191.  
  192. procedure TForm1.NyBck1AddRecord(Sender: TObject);
  193. begin
  194. Memo1.Lines.Add('Record added..Ok');
  195. end;
  196.  
  197. procedure TForm1.NyBck1ImportProgress(Sender: TObject; AProgress: Integer;
  198.   var StopIt: Boolean);
  199. begin
  200.  Addyes:=Addyes+1;
  201.   gauge1.Progress:=addyes-addno;//or =:aprogress;
  202.  Memo1.Lines.Add('Import in progress ' + IntToStr(AProgress));
  203. end;
  204.  
  205. procedure TForm1.NyBck1ExportProgress(Sender: TObject; AProgress: Integer;
  206.   var StopIt: Boolean);
  207. begin
  208.  Addyes:=Addyes+1;
  209.   gauge1.Progress:=addyes;// or :=aprogress;
  210.  Memo1.Lines.Add('Export in progress ' + IntToStr(AProgress));
  211. end;
  212.  
  213. procedure TForm1.NyBck1ImportError(Sender: TObject; Mess: String;
  214.   RecNo: Integer; var Response: TNyBckErrorResponse);
  215. begin
  216.  if mess='Key violation.' then begin
  217.   Response:=NyBckIgnore; //same record ignore
  218.   Addno:=Addno+1;
  219.   table1.Cancel;
  220.   end
  221.   else begin //key violation error don't
  222.   if MessageDlg(Mess + ' @: ' + IntToStr(RecNo)+ 'press "Abort", or "ignore".',mtError,[mbAbort,mbIgnore],0) = mrAbort then
  223.   Response:=NybckAbort
  224.   else
  225.   Response:=nybckIgnore;
  226.   end;
  227. end;
  228.  
  229. procedure TForm1.Table1CalcFields(DataSet: TDataSet);
  230. begin
  231. table1.FieldByName('Calcfield').asstring:=table1.Fields[0].AsString+'-->'+table1.Fields[1].AsString;
  232. end;
  233.  
  234. end.
  235.