|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Не могу сделать запрос
Не могу сделать запрос к базе на основе MSSQL. D В менеджере с легкостью управляюсь с запросами, а вот програмно что то фальшивлю, т.к. первый раз програмно общаюсь с базой.
Код:
quStac.SQL.Clear; sql := 'SELECT * FROM patients WHERE name = михаил'; quStac.SQL.Add(sql); quStac.Open; Да сразу помечу, что я прошу помоч мне с этим вопросом, а не предложить литературу или ссыль в поисковик. Взаранее спасибо |
#2
|
||||
|
||||
Вот мне щас просто интересно, тебе выдали ошибку, которая указывает на Михаила так? Ну и какие у тебя мысли? В чем может заключаться проблема?
Google в помощь |
#3
|
||||
|
||||
Цитата:
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#4
|
|||
|
|||
Ещё раз повторюсь, я в делфях первый раз пользуюсь запросами к базе. Лучше бы ответ дали на поставленный вопрос.
Когда в php я писал запросы то михаил был бы в одинарных кавычках и всё работало бы идеально, ну а здесь то каким образом это делать, вот я и спрашиваю какая здесь то особенность. Я даже конкатенацию использовал, и то не прокатило. Может кто то откинет свою жопестость на задний план и всё таки поможет нуждающемуся? |
#5
|
|||
|
|||
Цитата:
|
#6
|
||||
|
||||
Цитата:
Во-вторых, что для тебя же лучше, прийти к решению самому или же получить просто готовое решение сразу? В-третьих, http://www.delphisources.ru/forum/sh...193#post106193 Google в помощь |
#7
|
|||
|
|||
Цитата:
Раз! Второго предупреждения не будет. Теперь по существу. Вот ты сам сказал, что в php у тебя бы значение было бы в кавычках (подозреваю, что строковые литералы в php заключаются в двойные кавычки, а те же строковые литералы SQL внутри php-шной строки будут в одинарных). Отсюда вывод - значение 'Михаил' надо заключить в кавычки, причем одинарные. Как заключать - дело выбора. Есть функция Quote (кажется так), можно просто приписать код одинарной кавычки через Chr или напрямую через код ($34 кажется). А можно воспользоваться встроенным методом - экранировать кавычку еще одной т.е. 2 идущие подряд кавычки внутри строки обозначают одну кавычку. Непонятно, наверное, короче надо вот так: Код:
sql := 'SELECT * FROM patients WHERE name = ''михаил'''; PS. Но это вообще-то метод либо для динамической генерации, либо для криворуких товарищей. Обычно используются параметризованные запросы. Да и за * "вбыв бы"... PPS. Кстати, в курсе, что в данном случае запрос чуствителен к регистру (зависит от настроек БД, но обычно это так)? Т.е. строки со значением, например, 'Михаил' не выберутся. PPPS. А вообще, неплохо бы было для начала почитать хоть одну книжку по SQL и по Delphi. Многие вопросы бы сами отпали. Такие и подобные им моменты в книжках хорошо расписаны. Последний раз редактировалось lmikle, 31.05.2012 в 09:16. |
#8
|
||||
|
||||
Цитата:
Код:
QuotedStr('михаил'); Google в помощь |
#9
|
|||
|
|||
Вот теперь действительно помощь так помощь, точно и понятно, спасибо большое.
Да кстати насчет моих высказываний за которыми я должен следить. Эта реакция называется "воспринять ситуацию в штыки", т.к. если бы первые два ответа были бы более дружелюбного характера и был полезным, то и высказывания были бы соответственные. Форум пологаю чтобы рассуждать с пользой, а не пытаться улечить топикстартера в слабоумие. |