Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2006, 14:57   #1
doncova1
Пользователь
 
Регистрация: 19.11.2006
Сообщений: 42
Смех SQL

Нужно в SQL запрос вставит переменную num


если num типа integer( тип поля ID в БД Access числовой целый)
num:integer;
num:=StrToInt(ADOQuery2.FieldValues['ID']);
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT Rab_Proga, Adress_R FROM Material WHERE (ID='%i')',[num]);

то Ошибка
lllegal character in input file: '%'($25)

а если :

num:stringr;
num:=ADOQuery2.FieldValues['ID'];
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT Rab_Proga, Adress_R FROM Material WHERE (ID='%s')',[num]);

все ровно выдвет эту ошибку(((
doncova1 вне форума Ответить с цитированием
Старый 03.12.2006, 16:47   #2
doncova1
Пользователь
 
Регистрация: 19.11.2006
Сообщений: 42
По умолчанию

пробовала для num:integer ;

english.ADOQuery1.SQL.Add('SELECT Rab_Proga, Adress_R FROM Material WHERE (ID=#39%d#39) ',[num]);

пишет ошибку
tOO many actual parameters
doncova1 вне форума Ответить с цитированием
Старый 03.12.2006, 17:45   #3
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Что-то ты мудришь...
ADOQuery1.SQL.Add('SELECT Rab_Proga, Adress_R FROM Material WHERE ID = ' + ADOQuery2.FieldValues['ID']);
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 27.02.2007, 19:26   #4
doncova1
Пользователь
 
Регистрация: 19.11.2006
Сообщений: 42
По умолчанию

а если такая строка, где s строка из русских буков (например Коза)
adoquery1.SQL.Add('SELECT * from clienti where Name=' +s);

выдант ошибку Parametr Коза has no default value

Последний раз редактировалось doncova1; 27.02.2007 в 21:01.
doncova1 вне форума Ответить с цитированием
Старый 27.02.2007, 21:02   #5
doncova1
Пользователь
 
Регистрация: 19.11.2006
Сообщений: 42
По умолчанию

хотя даже если в s нерусское слово, то таже ошибка только вместо Коза то слово
doncova1 вне форума Ответить с цитированием
Старый 28.02.2007, 02:34   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от doncova1 Посмотреть сообщение
хотя даже если в s нерусское слово, то таже ошибка только вместо Коза то слово
Строковая переменная всегда в кавычках!
Иначе она воспринимается как имя переменной.
Понятно?
Т.е. если 'коза', то воспримется как строковая переменная, а если коза - то как переменная с именем коза.
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц