Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
24 / 24 / 2
Регистрация: 17.06.2008
Сообщений: 613

Как в коде программы изменить тело запроса SQL?

30.04.2011, 12:59. Показов 4036. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите, пожалуйста, как в коде программы поменять тело запроса SQL?

Пример:

Запрос SQL

SQL
1
2
3
SELECT *
FROM zaivka
WHERE vipolnena=:vipolnena
Задача: в коде программы изменить запрос сначала убрав условие, потом восстановив его.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.04.2011, 12:59
Ответы с готовыми решениями:

Как изменить код для вывода SQL запроса
Подскажите пожалуйста, как можно изменить вот этот код для того что бы данные брались не с DBGrid а с SQL запроса. var i,j, index:...

Как вызвать в коде программы процедуру SQL Server-а???
Есть процедура CREATE PROCEDURE RunApp AS begin if (not object_id ('tempdb..##Сидоров') is NULL) return 0 else CREATE...

Тестирование правильности SQL запроса в коде C#
Требуется проверить корректность SQL-запроса (правильные имена столбцов, правильный синтаксис, недостающие параметры и т.д.). Пока придумал...

4
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
30.04.2011, 13:43
Как правило текст запроса содержится в свойстве SQL компоненты, которая используется для формирования набора данных (TQuery, TADOQuery или что-либо другое, вы не пишете какие компоненты используете). Это свойство имеет тип TStrings и работать с ним можно по правилам объекта этого типа. Например
Delphi
1
SQL.Clear;
очистит текст SQL полностью.
Delphi
1
 ADOQuery1.SQL.Add(<здесь строка>);
Delphi
1
ADOQuery1.SQL[i]
обеспечит доступ к строке с номером i, с которой можно как с любой строкой совершать любые допустимые для строк операции.
Нумерация для TStrings начинается с 0.
0
24 / 24 / 2
Регистрация: 17.06.2008
Сообщений: 613
30.04.2011, 14:15  [ТС]
SAMZ,я использую TQuery.

Значит в моем случае, что бы удалить условие из запроса я должна написать, например, следующее:
Delphi
1
2
3
4
5
if ComboBox1.Text='Все' then
 begin
  ADOQuery1.SQL[2];
  Delete(SQL[2], 1, Length(SQL[2]);
 end;
Или как?

Сразу вопрос первый: по нажатию "Ctrl+Пробел" не могу найти ADOQuery1 или что либо подобное во всплывающих подсказках. Какое выбрать действие для доставания этой строчки из запроса? (у меня Delphi 5)

И второй: Как правильно прописать удаление этой строки? Как потом вернуть её обратно?

Delphi
1
2
3
4
5
if (ComboBox1.Text='выполненые') or (ComboBox1.Text='НЕвыполненые') then
 begin       
  ADOQuery1.SQL[2];
  Insert(WHERE vipolnena=:vipolnena, SQL[2], 1);
 end;
Как-то так?

Добавлено через 5 минут
не получается сделать шрифты
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
30.04.2011, 15:13
Цитата Сообщение от Grusha Посмотреть сообщение
не могу найти ADOQuery1
А зачем вам ADOQuery, если вы работаете с TQuery. Я в своем ответе сослался на ADOQuery как на возможный вариант используемых для формирования наборов данных компонент.
Цитата Сообщение от Grusha Посмотреть сообщение
Как правильно прописать удаление этой строки?
Я бы написал
Delphi
1
Query1.SQL[2] := '';
Query1 - это имя компоненты, заменить на свое.
Цитата Сообщение от Grusha Посмотреть сообщение
Как потом вернуть её обратно?
Delphi
1
Query1.SQL[2] := 'WHERE vipolnena=:vipolnena';
Вполне вероятноя проблема, с которой вы можете при этом столкнуться, это - при удалении последней строки исчезнет описание параметра из списка параметров. Я очень давно не работаю с TQuery, но, насколько помню, он ведет себя именно так. В этом случае при восстановлении последней строки с параметром придется программно описывать его свойства. Но это надо проверять.
1
24 / 24 / 2
Регистрация: 17.06.2008
Сообщений: 613
30.04.2011, 15:57  [ТС]
SAMZ,большое спасибо! Ура!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.04.2011, 15:57
Помогаю со студенческими работами здесь

Как получить ТЕЛО post-запроса?
Ситуация. Есть некий скриптец, который обращается к моему АСПу и передает ему зазипованный файл. все нормально, файл принимаю как ...

Изменить название столбца с помощью SQL-запроса
нужно изменить название столбца &quot;Дата_рождения&quot; на &quot;Дата_рожд&quot; в таблице студент с помощью sql запроса

ASP.NET MVC Как получить тело запроса
Добрый день! Интересует следующее: в контроллере есть метод, который парсит параметры URL, а так же необходимо кроме парсингла урла...

Тело POST запроса. Как самому узнать, что там должно быть?
Всем здрасти! У меня следующая делема... Нагуглил POST запрос на авторизацию на одноклассниках. Тело POST запроса имеет следующий...

Автозапуск программы и выполнение SQL-запроса
Hi Есть в наличии сервер 2008 + SQL-Server 2008, необходимо сделать мини-ехе на VB6, кинуть её в автозапуск, чтоб она при запуске...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru