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

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

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

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

Вопрос по динамическому запросу

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

FreeWay

Всем доброго!!!
Мне нужно выбрать значения с таблицы, и в условии я хочу обратиться к ранее инициализированной переменной - id_supplier.
Запрос такой:

QueryWriteCome->SQL->Text="SELECT name_good FROM \"GOODS\"WHERE id_supplier="+id_supplier+"";

но почемуто на эту конструкция ругается:
invalid pointer addition
Как будто неправильно использую конструкцию.
Самое интерессное что в другом приложении такая конструкция отрабатывает((
БД PostgreSQL 8.3. Доступ через BDE
 
W

WoodooMan

напиши вот так:
QueryWriteCome->SQL->Text="SELECT name_good FROM \"GOODS\"WHERE id_supplier="+id_supplier;
 
F

FreeWay

напиши вот так:
QueryWriteCome->SQL->Text="SELECT name_good FROM \"GOODS\"WHERE id_supplier="+id_supplier;

пасиб, вариант канает))

а подскажи из чего конструкция так резко видоизменилась???
Случайно нет линков на книги по постгрису для винды???
 
W

WoodooMan

ну вообще это компилер нервничает, ему такие конкатенации типа str = "text1" + "text2" или + "" очень не нравятся... если ты напишешь " " - то такое тоже прокатит, но не пусто...
 
F

FreeWay

И снова привет! Возник вопрос опять же по запросу:
у меня есть поле id_good типа integer, это у меня счетчик, вот таким запросом я хочу вставить новые данные и инкриментить счетчик:

sql="INSERT INTO \"GOODS\" (id_good, name_good, id_category, id_supplier) VALUES (SELECT max(id_good) +1 FROM \"GOODS\", '"+RzEditAddNomenklat->Text+"',1,2)";

компилятор не ругаеться, но при выполнении выдает ошибку такую:

отдельно такой запрос SELECT max(id_good) +1 FROM \"GOODS\"
отрабатывает и выгребает правильное значение
 

Вложения

  • error.JPG
    error.JPG
    18,2 КБ · Просмотры: 498
W

WoodooMan

ты запрос в скобки возьми SELECT max(id_good) +1 FROM \"GOODS\"
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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