Поиск:

Ответ в темуСоздание новой темы Создание опроса
> AdoQuery Поиск Не получается SQL запрос, AdoQuery Поиск  
:(
    Опции темы
AJIeKcEu
  Дата 5.9.2011, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 26.10.2005
Где: Уфа

Репутация: нет
Всего: 0



   Добрый день! уважаемые программисты.
Возникла маленькая проблемка с поиском через SQL
Использую  запрос типа: SELECT * FROM таблицаБД WHERE ИмяТаблицы='значение'

Код

p числовой
 load, zapros текстовый
____
   load:='622';
   zapros:='SELECT * FROM 555 WHERE ИмяТаблицы='''+load+'''';
   Query.SQL.Text:=zapros;
   Query.ExecSQL;
 p:=DataModule1.UserQuery.ExecSQL; // просто смотрю результат запроса 1-да, 0 нет (при записи, изменении работает, а на селекте нет)
showmessage(inttostr(p));


Выводит аргумент 0 :(
Пожалуйста подскажите в чем моя ошибка?


Добавил:
Задача: При добавлении новой строчки..проверять есть ли в таблице или нет (1:0)


Это сообщение отредактировал(а) AJIeKcEu - 5.9.2011, 14:44
PM MAIL WWW ICQ   Вверх
AndreyIQ
Дата 5.9.2011, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 5.2.2007

Репутация: 1
Всего: 8



Цитата(AJIeKcEu @ 5.9.2011,  14:40)
Добрый день! уважаемые программисты.
Возникла маленькая проблемка с поиском через SQL
Использую  запрос типа: SELECT * FROM таблицаБД WHERE ИмяТаблицы='значение'

Код

p числовой
 load, zapros текстовый
____
   load:='622';
   zapros:='SELECT * FROM 555 WHERE ИмяТаблицы='''+load+'''';
   Query.SQL.Text:=zapros;
   Query.ExecSQL;
 p:=DataModule1.UserQuery.ExecSQL; // просто смотрю результат запроса 1-да, 0 нет (при записи, изменении работает, а на селекте нет)
showmessage(inttostr(p));


Выводит аргумент 0 :(
Пожалуйста подскажите в чем моя ошибка?


Добавил:
Задача: При добавлении новой строчки..проверять есть ли в таблице или нет (1:0)

С адо не очень дружу, но обычно для получения результатов запроса необходимо выполнить не ExecSQL, а Open
PM MAIL   Вверх
Данкинг
Дата 5.9.2011, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Согласен с AndreyIQ: в данном случае требуется .open.

Добавлено через 37 секунд
Цитата(AJIeKcEu @  5.9.2011,  15:40 Найти цитируемый пост)
Задача: При добавлении новой строчки..проверять есть ли в таблице или нет (1:0)

Чего проверять?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
14SatanA88
Дата 5.9.2011, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 13.5.2010

Репутация: 1
Всего: 5



Цитата(AJIeKcEu @  5.9.2011,  14:40 Найти цитируемый пост)
zapros:='SELECT * FROM 555 WHERE ИмяТаблицы='''+load+'''';


я бы посоветовал использовать параметры вообще.
PM MAIL ICQ   Вверх
superVad
Дата 5.9.2011, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 3
Всего: 15



AJIeKcEu, не очень понял, что тебе надо. Но если надо знать вернул ли запрос какие то значения, то юзай IsEmpty или RecordCount.

PM MAIL   Вверх
AJIeKcEu
Дата 6.9.2011, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 26.10.2005
Где: Уфа

Репутация: нет
Всего: 0



ВСем спасибо, получилось 

Код

   load:=edit3.Text;
   zapros:='SELECT * FROM 555 WHERE таблица='''+load+'''';
   UserQuery.SQL.Text:=zapros;
  UserQuery.Open;
   p:=variant(DataModule1.UserQuery.RecordCount);
     showmessage(zapros+'- '+inttostr(p));
UserQuery.Close;


В зависимости от совпадения выводит 0/1..
С IsEmpty  не вышло.
PM MAIL WWW ICQ   Вверх
Данкинг
Дата 6.9.2011, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(AJIeKcEu @  6.9.2011,  08:45 Найти цитируемый пост)
В зависимости от совпадения выводит 0/1..

Вообще-то там выведется не 0/1, а сколько строк отобрано по условию.
И "variant"-то зачем?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
superVad
Дата 6.9.2011, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 3
Всего: 15



AJIeKcEu, IsEmpty возвращает булево значение. Если в наборе данных есть хоть одна запись то False, если записей 0, то True.
Да и с variant ты что то накрутил.

Добавлено через 41 секунду
Может имеет смысл подучить инглиш? smile
PM MAIL   Вверх
AJIeKcEu
Дата 12.9.2011, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 26.10.2005
Где: Уфа

Репутация: нет
Всего: 0



По варианту так чтоб не паритьсяsmile
По инглишу согласен))) немецкий в школе учил и зря))
по 0/1, я там в конце ... поставил, что типа 1 и далее)
PM MAIL WWW ICQ   Вверх
Данкинг
Дата 12.9.2011, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



 smile 
Цитата(AJIeKcEu @  12.9.2011,  12:56 Найти цитируемый пост)
немецкий в школе учил и зря))

Ну, это ни о чём не говорит. В школе мы много чего нужного/ненужного учили/не учили. Я вот в школе учил английский, что не мешает мне в данное время знать испанский. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0944 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.