Вниз
Скачать: CL | DM;

Неполучается создать таблицу   Найти похожие ветки 

 
Dars73 ©   (2008-07-31 02:18) [0]

Доброе время суток.

Имеется кусок программы где программно создаю таблицу dbf с программно присвоенным именем через Компоненту TEdit.
при первом создании все работает на ура. А вот при повторном, даже при смене имени таблицы вылетает ошибка.

после перезапуска программы можно опят один раз создать таблицу.
подскажите где у меня тупой угол.

unit tabbele;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, DBTables;

type
 TForm1 = class(TForm)
   Table1: TTable;
   DBGrid1: TDBGrid;
   DBNavigator1: TDBNavigator;
   Button1: TButton;
   Button3: TButton;
   Button4: TButton;
   Edit1: TEdit;
   DataSource1: TDataSource;
   OpenDialog1: TOpenDialog;
   procedure Button1Click(Sender: TObject);
   Procedure sosdanieTabl;
   Procedure PodkluchenieTab;
   procedure Edit1KeyPress(Sender: TObject; var Key: Char);
   procedure Button3Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }

 end;

var
 Form1: TForm1;
 TabNam:string;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.SetFocus;
end;

Procedure Tform1.sosdanieTabl();
begin
with Table1 do
  begin
  DatabaseName:="";
  TableName:=TabNam;
  TableType:=ttDBase;
  {Создать поля}
  with FieldDefs do
  begin
  Add("Surname", ftString, 30);
  Add("Name", ftString, 25);
  Add("Patronymic", ftString, 25);
  Add("Age", ftInteger, 0, false);
  Add("Weight", ftFloat, 0, false);
  end;
  CreateTable;
  end;
end;

Procedure Tform1.PodkluchenieTab();
begin
Table1.Active:=false;
table1.DatabaseName:="";
table1.TableName:=TabNam;
table1.Active:=true;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if ord (key)=13 then begin
                    TabNam:=Edit1.Text;
                    form1.sosdanieTabl;
                    form1.PodkluchenieTab;
                    end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
opendialog1.InitialDir:="";
opendialog1.Execute;
TabNam:=opendialog1.FileName;
form1.PodkluchenieTab;
end;

end.


 
self.name ©   (2008-07-31 02:37) [1]

:)написали б какую ошибку...
но попробуйте:
Procedure Tform1.sosdanieTabl();
begin
with Table1 do
 begin
 close;  //для первой ошибки
 FieldDefs.Clear;  //для второй =)
 DatabaseName:="";
...

вроде работает. хотя FieldDefs.Clear; можно было бы и не делать, если поля одни и те же, но тогда не нужно делать Add("Surn...


 
dars73 ©   (2008-07-31 03:01) [2]

Спасибо большой все работает.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.021 c
2-1217882220
Shementov
2008-08-05 00:37
2008.09.14
TChart


15-1216058333
GrayFace
2008-07-14 21:58
2008.09.14
Система контроля версий кода для VS2005 для удаленной работы


15-1216713031
Azize
2008-07-22 11:50
2008.09.14
Cамый экономичный компьютер в мире


11-1193034025
Дмитрий Пырин
2007-10-22 10:20
2008.09.14
проблема с Bitmap.LoadFromFile


15-1216734281
VirEx
2008-07-22 17:44
2008.09.14
Дизайн детей (не дали договорить)




   Наверх