Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.03.2007, 11:54
vinni vinni вне форума
Начинающий
 
Регистрация: 26.01.2006
Сообщения: 135
Репутация: 10
По умолчанию Delphi и SQL Server

Вопрос легкий для тех кто в курсе :-) Прога поиска по одной таблице на SQL-сервере. Запрос:
Код:
  ADOQuery1.SQL.Add('SELECT SS,SN_POL,FAM,IM,OT,W,DR,SN_DOC,C_DOC,ADRES,OKATO_REG,S_EDV,DB_EDV,DE_EDV,C_KAT1,C_KAT2,DATE_RSB,DATE_RSE,U_TYPE,DATA FROM [REG_LGOT].[dbo].[r2007] as t WHERE t.SS='+MaskEdit3.Text+''); 
выдаецца ошибка: 'Invalid column name 'БАРАНОВ''. Т.е. в МаскЭдит я ввожу фамилию какова-нть товарища, а компилятор думает што это поле в таблице. Если запрос без конструкции WHERE - все работает нормально, т.е. выбираюцца все записи из таблицы (в ДБГрид).

Т.е. получаецца, што косяк в синтаксисе конструкции WHERE. Кавычки пробовал разные - не помогает. Причом если поиск производицца по ДБФ-файлу на диске - все работает и с конструкцией WHERE.

Помогите плиз... Заранее спасибо!
Ответить с цитированием
  #2  
Старый 28.03.2007, 12:00
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Делай так:
Код:
ADOQuery1.SQL.Add('SELECT SS,SN_POL,FAM,IM,OT,W,DR,SN_DOC,C_DOC,ADRES,OKATO_ REG,S_EDV,DB_EDV,DE_EDV,C_KAT1,C_KAT2,DATE_RSB,DAT E_RSE,U_TYPE,DATA FROM [REG_LGOT].[dbo].[r2007] as t WHERE t.SS='+QuotedStr(MaskEdit3.Text));
или так:
Код:
ADOQuery1.SQL.Add('SELECT SS,SN_POL,FAM,IM,OT,W,DR,SN_DOC,C_DOC,ADRES,OKATO_ REG,S_EDV,DB_EDV,DE_EDV,C_KAT1,C_KAT2,DATE_RSB,DAT E_RSE,U_TYPE,DATA FROM [REG_LGOT].[dbo].[r2007] as t WHERE t.SS= :a');
ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.Text,true);
ADOQuery1.Parameters.ParamByName('a').Value:=MaskEdit3.Text;

ЗЫЖ Лучше, ИХМО, Like юзать.
Ответить с цитированием
  #3  
Старый 28.03.2007, 12:28
vinni vinni вне форума
Начинающий
 
Регистрация: 26.01.2006
Сообщения: 135
Репутация: 10
По умолчанию

Сделал через QuotedStr. А нащот LIKE - использую. Сдесь не писал для простоты. Огромное спасибо!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:40.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter