Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.09.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.044 c
2-1217625174
self.name
2008-08-02 01:12
2008.09.14
stream1.read(stream2,size); почему не работает?


15-1216787659
Тоша
2008-07-23 08:34
2008.09.14
Социологический опрос


2-1217300882
apic
2008-07-29 07:08
2008.09.14
иконки


15-1216708121
Dennis I. Komarov
2008-07-22 10:28
2008.09.14
Порекомендуйте снифф


3-1206022526
patrick1968
2008-03-20 17:15
2008.09.14
BatchMove из Oracle





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский