• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

pol_g

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

Guest

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

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

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

Guest_pol_g_*

<!--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

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

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

Код:
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_*

Ну что вам ответить не зря у вас стоит приписка ГУРУ. Я полтора дня с этим мучался. А вроде мелочь. Спасибо.
 
B

Barmutik

Главное что всё получилось! Удачи!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!