Вниз
Скачать: 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.023 c
2-1217519710
dars73
2008-07-31 19:55
2008.09.14
как отвязать программу от определенного места


15-1216821757
Vlad Oshin
2008-07-23 18:02
2008.09.14
Поставил FastMM.dll - стала BDS2006 глючить. Ни у кого больше?


15-1216718835
dle
2008-07-22 13:27
2008.09.14
DataLife Engine Free


15-1216655854
ПостОвый терминатор
2008-07-21 19:57
2008.09.14
О полномочиях


15-1216754255
Polevi
2008-07-22 23:17
2008.09.14
xslt




   Наверх