Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.09.14;
Скачать: 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 вся ветка

Текущий архив: 2008.09.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
15-1216941163
wl
2008-07-25 03:12
2008.09.14
Лолита. Набоков, Кубрик и д.р.


15-1216058157
{RASkov}
2008-07-14 21:55
2008.09.14
Брак ли?


2-1217529981
Noobik
2008-07-31 22:46
2008.09.14
Вопрос по скрипиту на delphi


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


15-1215553340
Маэстро
2008-07-09 01:42
2008.09.14
Вопрос....