проблема с запросом (quiery)

  • Автор темы pol_g
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

pol_g

#1
Проблема такая, есть запрос с 12-тью параметрами, есть форма с которой считываются значения и передаются в функцию. В этой функции в параметры запроса забивются значения переданные с формы и осуществляется запрос к бд, в результате получается датасет с набором данных. Почему о алгоритм срабатывает только один раз. Т.е запускаю форму заполняю поля получаю результат выборки. Заполняю поля передаю в функцию новые значения и выскакивает ошибка что в запросе нет параметров.
Помогите плиз.
 
G

Guest

#3
procedure Search(tableFrom : string; regnumberFrom : string; regnumberTill : string; receiver : string; employee : string; typeDocument : string; regDateFrom :TDate; regDateTill : tdate; orderdate : tdate; ordernumber : string; documentnumber: string; documentDate : tdate; filename : string );
var
tableName, condition, fields: string;

const SQLString = 'Select %s from %s %s';

begin

dm.Search.Close;
dm.Search.sql.Clear;


if tableFrom ='Inbox' then
begin
fields := ' registrationnumber, receiver, topic, registrationdate ';
tablename :='incoming_messages';
condition:= '';
if regnumberFrom <> '' then
begin
dm.Search.ParamByName('regNumberFrom').asinteger := strtoint(regnumberfrom);
condition := ' where registrationnumber>= :regNumberfrom' ;
end;

dm.Search.Open;


end;
 
B

Barmutik

#4
Что-то я в приведённом коде не вижу что Вы присваиваете SQL запрос в Ваш DataSet..

Только параметр назначаете ... или это не весь код?
 
G

Guest_pol_g_*

#5
<!--QuoteBegin-Barmutik+18:08:2005, 16:50 -->
<span class="vbquote">(Barmutik @ 18:08:2005, 16:50 )</span><!--QuoteEBegin-->Что-то я в приведённом коде не вижу что Вы присваиваете SQL запрос в Ваш DataSet..

Только параметр назначаете ... или это не весь код?
[snapback]23676" rel="nofollow" target="_blank[/snapback]​
[/quote]

Проблема в том что после первого запуска компилятор не видит параметров процедуры которые я забил статически компоненту ТQuery на форме и это срабатывает только при первом разе
 
B

Barmutik

#6
Начнём с того что компилятор после запуска уже вообще ничего не видит :( потому как он в то время уже никак работает ..

Я бы Вам посоветовал сделать следующим образом:

Код:
procedure Search(tableFrom : string; regnumberFrom : string; regnumberTill : string; receiver : string; employee : string; typeDocument : string; regDateFrom :TDate; regDateTill : tdate; orderdate : tdate; ordernumber : string; documentnumber: string; documentDate : tdate; filename : string );
var
tableName, condition, fields: string;

const SQLString = 'Select %s from %s %s';

begin

dm.Search.Close;
dm.Search.sql.Clear;


if tableFrom ='Inbox' then
begin
fields := ' registrationnumber, receiver, topic, registrationdate ';
tablename :='incoming_messages';
condition:= '';
if regnumberFrom <> '' then
begin
condition := ' where registrationnumber>= :regNumberfrom';
end;

dm.SQL.Text := Format(SQLString, [tablename, fields, condition]);
if regnumberFrom <> '' then
Dm.Search.ParamByName('regNumberFrom').asinteger := 
strtoint(regnumberfrom);

dm.Search.Open;


end;
 
G

Guest_pol_g_*

#7
Ну что вам ответить не зря у вас стоит приписка ГУРУ. Я полтора дня с этим мучался. А вроде мелочь. Спасибо.
 
Статус
Закрыто для дальнейших ответов.