Форум: "Базы";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
Внизошибка при активации TQuery Найти похожие ветки
← →
чайник (2003-11-06 10:22) [0]Уважаемые мастера помогите чайнику, бьюсь 2 день. У меня в проекте на первой форме выводится диалог с именем пользователя и пароля и компонент TDataBase.
AliasName:=MSSQL;
Connected:=true;
DatabaseName:=lising;
Exclusive:=false;
HandleShared:=true;
KeepConnection:=false;
Loginprompt:=false;
по кнопочке OK анализирую соединение через try...except.При удачном соединении загружаю основное меню.На этой форме у меня несколько Query и DataSource. в событии FormCreate запускаю Query.execsql и делаю Query.Active:=true; в uses второй формы прописан модуль первой формы. Выдается сообщение, что не может совершить операцию по открытию базы. В чем дело, спасибо.
← →
vovchik (2003-11-06 10:24) [1]Надеюсь что прежде чем запустить Query.execsql ты запрос то написал, а то вроде как из текста не понятно сам запрос есть или нет
← →
Плохиш_ (2003-11-06 10:25) [2]Как всегда ошибка в 17й строке
← →
DenK_vrtz (2003-11-06 10:25) [3]запускаю Query.execsql и делаю Query.Active:=true
а зачем и то и то делать?
← →
stone (2003-11-06 10:25) [4]
> запускаю Query.execsql и делаю Query.Active:=true;
Query.execsql - только для выполнения команд (insert, update, delete ...)
Query.Active:=true; - для получения набора данных (SQL = select * ...)
и то и другое вместе не допустимо
← →
bushmen (2003-11-06 10:27) [5]>запускаю Query.execsql и делаю Query.Active:=true;
Query.execsql применяется для запросов, которые не возвращают НД, так что Query.Active:= true - будет ругаться
← →
Vlad (2003-11-06 10:29) [6]
> в событии FormCreate запускаю Query.execsql и делаю
Ты уверен что в момент FormCreate экземпляр Query уже создан ?
← →
чайник (2003-11-06 10:30) [7]запрос естественно написан, если просто делаю execsql ошибки нет. но стоит изменить свойство Active ошибка и вылетает в тексте запроса стоит select. может не передаются параметры базы. Когда на офрме делаешь Active:=true, то все нормально.
← →
Плохиш_ (2003-11-06 10:32) [8]Предлагаю ветку в потрепаться:
Кода нет, текста ощибки нет, телепаты в отпуске.
← →
Term (2003-11-06 10:33) [9]ну тогда хоть приведи текст запроса
← →
чайник (2003-11-06 10:38) [10]запрос вообще простой
select kod,name from klient
я затем строки из Query пытаюсь заносить в combobox для выбора клиента вот таким образом.
Q_kl.Active:=True;
with D_kl.DataSet do begin
D_kl.DataSet.First;
while not D_kl.DataSet.Eof do begin
ComboBox1.Items.Add(D_kl.DataSet.FieldValues["name"]);
D_kl.DataSet.Next;
end;
end;
← →
Жук (2003-11-06 10:40) [11]Странно всё это...
← →
чайник (2003-11-06 10:43) [12]что странного, что не открывается..
← →
bushmen (2003-11-06 10:44) [13]В FormCreate это работать не будет - в момент создания формы компоненты ещё не созданы. Перенеси это в FormActivate
← →
Vlad (2003-11-06 10:45) [14]
> чайник (06.11.03 10:43) [12]
Ты можешь нормально код своей программы привести, а именно ту процедуру, в которой происходит ошибка ?
← →
чайник (2003-11-06 10:48) [15]bushmen © спасибо, все получилось..
← →
Johnmen (2003-11-06 10:49) [16]Вот этого делать не надо >bushmen © (06.11.03 10:44) !
← →
Term (2003-11-06 10:50) [17]
> Перенеси это в FormActivate
и при каждом получении формой фокуса, будет выполняться запрос, по 100 раз на дню, а так как ComboBox1.Items.Clear нету, то список клиентов будет длинной с километр в конце дня, нужно структуру программы ему переосмыслить, чтобы одни и теже действия без надобности не выполнялись по много раз
← →
Плохиш_ (2003-11-06 10:53) [18]
> bushmen © (06.11.03 10:44) [13]
> В FormCreate это работать не будет - в момент создания формы
> компоненты ещё не созданы. Перенеси это в FormActivate
Это в какой книжке такое пищут?
← →
bushmen (2003-11-06 10:57) [19]>Term ©
Я это для проверки предложил. С такой информацией не понятно, в каком месте у него ошибка. Причина ошибки нашлась, а дальше пусть сам переосмысливает куда ему что тыкать. Кстати, раз пошла така пьянка, то я бы на его месте все компоненты доступа к данным перенес в DataModule.
← →
Term (2003-11-06 10:57) [20]
> Это в какой книжке такое пищут?
это может в книжке не пишут, но так оно и есть, я тоже с этим сталкивался, на OnCreate главной формы, не сработает, но OnActivate главной формы тоже не выход
← →
bushmen (2003-11-06 10:58) [21]>Плохиш_
Что именно - про созданные компоненты или про перенос в FormeActivate? :)))
← →
bushmen (2003-11-06 10:59) [22]Ошибочка, FormActivate
← →
Плохиш_ (2003-11-06 11:00) [23]>Term © (06.11.03 10:57) [20]
Где только такую траву берёте
>bushmen © (06.11.03 10:58) [21]
про оба
← →
Жук (2003-11-06 11:01) [24]
> Term © (06.11.03 10:50) [17]
Не всё так просто. Если остальные формы модальные, то этого не будет.
← →
Плохиш_ (2003-11-06 11:02) [25]>bushmen © (06.11.03 10:58) [21]
Хотя... Неплохо было бы уточнить какие компоненты имеются ввиду
← →
Vlad (2003-11-06 11:06) [26]TQuery в момент FormCreate еще не создан. Он nil.
А вот перенос в FormActivate, чревато дурными последствиями, такими как многократное выполнение данного запроса при каждой активации формы. Хорошо что там не INSERT, а то бы происходили удивительные вещи у Вас в базе :)
← →
bushmen (2003-11-06 11:07) [27]>Плохиш_
Визуальные
← →
Term (2003-11-06 11:10) [28]
> Не всё так просто. Если остальные формы модальные, то этого
> не будет.
интересно... поясни тогда что значит "модальные" такого свойства то у формы нет...
а Form.ShowModal это функция...
или я не прав тогда поправьте
← →
bushmen (2003-11-06 11:13) [29]>Vlad ©
>Хорошо что там не INSERT, а то бы происходили удивительные вещи >у Вас в базе :)
Что касается выбора процедур, куда вставлять код - дело самого человека. Я указал только на причину ошибки, а дальше - сам пусть разбирается.
← →
Term (2003-11-06 11:14) [30]
> Плохиш_ (06.11.03 11:00) [23]
> >Term © (06.11.03 10:57) [20]
>
> Где только такую траву берёте
хе...
> Vlad © (06.11.03 11:06) [26]
> TQuery в момент FormCreate еще не создан. Он nil.
помоему я тоже самое имел ввиду, просто говорил обо всём в общих фразах, так как спросил совсем новичёк.
а траву я как то не очень чаще пиво и девочки :)))
← →
Плохиш_ (2003-11-06 11:26) [31]Объясняю на пальцах: В FormCreate уже созданы все компоненты, которые были кинуты на форму в дезайнере.
У кого это не так сожетую сменить траву, сорт пива, девочек.
← →
Term (2003-11-06 11:32) [32]
> У кого это не так сожетую сменить траву, сорт пива, девочек.
всё больще не пью и прогоню всех баб
ты прав........
а почему тогда у него глючило?
← →
Собаколов (2003-11-06 11:34) [33]Кто знает что это за собачье поганяло Плохиш_ у него справка от доктора есть
← →
Term (2003-11-06 11:38) [34]
> Кто знает что это за собачье поганяло Плохиш_ у него справка
> от доктора есть
я не знаю что у него есть, но баб уже прогнал,
т.к. проверил и Query1.active:=true на OnActivate формы на которой лежит компонент сработал без глюков...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.01 c