Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2013, 15:37   #1
Moneo
Пользователь
 
Регистрация: 21.01.2010
Сообщений: 37
По умолчанию Ошибка при старте No table name assigned

При старте программы выскакивает ошибка: No table name assigned
Использую встроенный interbase в Delphi XE3 Update1 и Firebird 2.5.

Таблицы создаю динамически поэтому поля tablename не заполняю в редакторе, заметил такую вещь что некоторые заполняются сами по названию компонента (name:ibtable1,tablename:ibtable1) - может как раз на это жалуется. Привожу код активации и создания формы - остальное думаю не имеет никого отношения:
Код HTML:
[CODE]
procedure TForm1.FormCreate(Sender: TObject);
var
 finifile:TIniFile;
begin
{ibtransaction1.StartTransaction;}
{ISNagScreenShown := true; }
{finifile:=Tinifile.create(extractfilepath(application.ExeName)+'config.ini');
finifile:=Tinifile.create('C:\kbmk_test\Win32\Debug\config.ini');
{Ibdatabase1.databasename:=finifile.readstring('Base','Path','');
Ibdatabase1.databasename:='BASE.FDB';
FiniFile.Free;                             }
AddFontResource('fonts\HeliosCondC.otf');
AddFontResource('fonts\HeliosCondC-Bold.otf');
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;
end;

procedure TForm1.FormActivate(Sender: TObject);
var
list:tstringlist;
i:integer;
begin
list:=tstringlist.Create;
datamodule1.ibdatabase1.GetTableNames(list);
if list.indexof('OPTIONS_GLOBAL')=-1 then
begin
frame31.ibtable1.active:=false;
frame31.ibTable1.Database:=datamodule1.ibdatabase1;
frame31.ibtable1.TableName:='OPTIONS_GLOBAL';
frame31.ibtable1.FieldDefs.clear;
frame31.ibtable1.fielddefs.add('groups',ftblob,0,false);
frame31.ibtable1.FieldDefs.add('pass',ftblob,0,false);
frame31.ibtable1.FieldDefs.add('admpass',ftblob,0,false);
frame31.ibtable1.FieldDefs.add('check',ftinteger,0,false);
frame31.ibtable1.CreateTable;
frame31.ibtable1.Active:=true;
frame31.ibtable1.close;
frame31.ibtable1.TableName:='OPTIONS_GLOBAL';
frame31.ibtable1.open;
frame31.ibtable1.Database:=datamodule1.ibdatabase1;
frame31.ibtable1.Active:=true;
edit1.Text:=frame31.ibtable1.TableName;
frame31.ibtable1.edit;
frame31.datasource1.Edit;
form1.Width:=658;

form1.Height:=551;
end else  edit1.Text:=frame31.ibtable1.TableName;

frame21.Combobox1.Items.Clear;
frame21.Combobox1.Items.AddStrings(list);
N:=POS('_',frame21.ComboBox1.items.Text);
if n<>0 then
begin
for i:=frame21.ComboBox1.Items.Count downto 0 do
if Pos('_', frame21.ComboBox1.Items.Strings[i])<>0 then
frame21.ComboBox1.Items.Delete(i);
frame21.ComboBox1.Sorted:=true;
end;
frame21.Combobox1.sorted:=true;
frame21.Combobox1.text:=frame21.Combobox1.items[0];
frame21.ibtable1.tablename:=frame21.combobox1.text;
frame21.ibtable1.active:=true;
frame21.ibtable1.edit;
frame21.ibtable1.First;
while not frame21.ibtable1.Eof do begin
frame21.combobox2.Items.Add(frame21.ibtable1.Fieldbyname('id').asstring);
frame21.ibtable1.Next;
end;


end;
[/CODE]

Последний раз редактировалось Moneo; 28.05.2013 в 15:39.
Moneo вне форума Ответить с цитированием
Старый 28.05.2013, 15:46   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Небось и Connected, и Active в True выставлены в среде разработки
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.05.2013, 15:51   #3
Moneo
Пользователь
 
Регистрация: 21.01.2010
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Небось и Connected, и Active в True выставлены в среде разработки
нет конечно все в коде
Методом блокировки нашел что ошибка в FormACtivate а где понять не могу
Все разобрался проблема была в строке frame21.Combobox1.text:=frame21.Com bobox1.items[0]; в Комбобоксе не было такой строки.

Последний раз редактировалось Moneo; 28.05.2013 в 16:05.
Moneo вне форума Ответить с цитированием
Старый 28.05.2013, 15:56   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вот это не понятно
Код:
frame31.ibtable1.open;
frame31.ibtable1.Database:=datamodule1.ibdatabase1;
frame31.ibtable1.Active:=true;
И для полного счастья - на какой команде исключение подымается?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильнее Assigned(FOnClick) или Assigned(OnClick) Upgrades Компоненты Delphi 2 17.04.2012 20:13
ошибка при старте макроса "Automation error (Error 440)" Дятел Microsoft Office Excel 7 29.11.2010 17:34
нужна одно table где все rows from table 1 но и еще добавленных table 2 Why Помощь студентам 0 20.09.2010 10:29
создание dll при старте приложения и удаление при завершении TyoshA Общие вопросы Delphi 7 13.07.2009 13:56
Ошибка Left Side cannot be assigned to.. DM_bite Помощь студентам 1 18.09.2008 21:01