Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.27;
Скачать: CL | DM;

Вниз

ошибка при активации 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;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.027 c
1-89888
Alexx
2003-11-15 16:39
2003.11.27
Как в компоненте DateTimePicker поменять шаг


1-89848
Buffoon
2003-11-16 17:49
2003.11.27
Заголовок окна


1-89901
selena
2003-11-14 09:42
2003.11.27
архив и печать


7-90154
Kremen
2003-09-17 15:04
2003.11.27
Подключение к устройству


3-89773
stud
2003-11-06 17:47
2003.11.27
отчеты........