Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.02.17;
Скачать: [xml.tar.bz2];

Вниз

Проблема с запросом   Найти похожие ветки 

 
NoName   (2004-01-27 03:50) [0]

Доброй ночи!

Помогите решить проблему: вовремя выполнения запроса
возникает ошибка Dinamic SQL error.SQL error code = -206
Column unknown "введеный мной символ и знак %".
Вот код:
Find.CLose;
Find.SQL.Clear;
Find.SQL.Add("select * from new");
Find.SQl.Add("where name like ""+edit1.Text+"%"");
Find.Open;
ПОчемуто раньше когда я писал такой код все было отлично теперь же Delphi на это материться :(
В консоли InterBase код:
select * from new
where name like "а%";
выводит мне все имена на букву а.

Мучаюсь но не как не могу убрать этот баг.

ПОМОГИТЕ найти решение.

Зарание спасибо!


 
ЮЮ   (2004-01-27 03:56) [1]

А почему в консоли InterBase ты используешь ", а в Delphi " ?
С " в консоли InterBase тоже проходит?


 
NoName   (2004-01-27 04:02) [2]

" в консоли InterBase не будут работать
А в Delphi если " заменить на " тоже error потомучто для того чтобы динамичиски передать одинарные кавычки в запрос
надо написать двойные кавычки


 
ЮЮ   (2004-01-27 04:18) [3]

> потомучто для того чтобы динамичиски передать одинарные кавычки в запрос надо написать двойные кавычки

Это твоё мнение.
На самом деле, чтобы текстовая константа содержала символ "одинарная кавычка" он должен быть наброн дважды:

Find.SQl.Add("where name like """+edit1.Text+"% """);


 
NoName   (2004-01-27 04:29) [4]

Но почему код вызывает ошибку?


 
ЮЮ   (2004-01-27 04:33) [5]

Хотя бы сказал, что за ошибка


 
NoName   (2004-01-27 04:35) [6]

В вопросе указано что за ошибка


 
ЮЮ   (2004-01-27 04:49) [7]

select * from new where name like "а%"
Потому что в двойных кавычках указывается имя столбца (например, содержащего пробел или названного как зарезервированное слово), а твой запрос должен выглядеть так же, как и в консоли
select * from new where name like "а%"


 
NoName   (2004-01-27 05:51) [8]

и как это реализовать программно в Delphi ?
что - то у меня это не выходит :(((


 
ЮЮ   (2004-01-27 06:08) [9]

1 способ: ЮЮ © (27.01.04 04:18) [3]
Find.SQl.Add("where name like """+edit1.Text+"%""");
(везде стоит символ ")
2 способ
Find.SQl.Add("where name like " + QuatedStr(edit1.Text + "%"));
3 способ
Find.SQl.Add("where name like :NameParam");
...
Find.ParamByName(NameParam).asString := edit1.Text + "%";
И т.д. и т.п. (предпочтительней использовать в обратной последовательности: 3, 2, 1(самый худший вариант)


 
NoName   (2004-01-27 06:38) [10]

Cпасибо большое за помощь



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.02.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.01 c
7-53800
maxXP
2003-12-02 19:23
2004.02.17
Как определить нажата, отпущена кокретная клавиша клавиатуры a-z


3-53416
}|{yk
2004-01-26 11:49
2004.02.17
И последнее на сегодня. Где хранятся description таблиц и полей?


3-53411
Санек
2004-01-26 11:54
2004.02.17
Как сделать чтобы GotoBookmark не менял грид ?


6-53670
pepper
2003-12-08 15:25
2004.02.17
Сетевой диск


1-53492
Kolega
2004-02-06 09:06
2004.02.17
ActiveX





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский