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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.05.2012, 20:33
timondrik timondrik вне форума
Прохожий
 
Регистрация: 12.03.2009
Сообщения: 21
Репутация: -122
По умолчанию Не могу сделать запрос

Не могу сделать запрос к базе на основе MSSQL. D В менеджере с легкостью управляюсь с запросами, а вот програмно что то фальшивлю, т.к. первый раз програмно общаюсь с базой.
Код:
quStac.SQL.Clear;
sql := 'SELECT * FROM patients WHERE name = михаил';
quStac.SQL.Add(sql);
quStac.Open;
Такой запрос выдает "Не допустимое имя столбца михаил". Я просто привык в php всё как по маслу, а тут что за сюрприз, что за особенность такая.
Да сразу помечу, что я прошу помоч мне с этим вопросом, а не предложить литературу или ссыль в поисковик. Взаранее спасибо
Ответить с цитированием
  #2  
Старый 30.05.2012, 20:38
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Вот мне щас просто интересно, тебе выдали ошибку, которая указывает на Михаила так? Ну и какие у тебя мысли? В чем может заключаться проблема?
__________________
Google в помощь
Ответить с цитированием
  #3  
Старый 30.05.2012, 21:38
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Цитата:
В менеджере с легкостью управляюсь с запросами, а вот програмно что то фальшивлю
И вы хотите сказать, что ваш запрос там выполнится без ошибок? Че-то я сильно сомневаюсь.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 31.05.2012, 07:36
timondrik timondrik вне форума
Прохожий
 
Регистрация: 12.03.2009
Сообщения: 21
Репутация: -122
По умолчанию

Ещё раз повторюсь, я в делфях первый раз пользуюсь запросами к базе. Лучше бы ответ дали на поставленный вопрос.
Когда в php я писал запросы то михаил был бы в одинарных кавычках и всё работало бы идеально, ну а здесь то каким образом это делать, вот я и спрашиваю какая здесь то особенность. Я даже конкатенацию использовал, и то не прокатило.
Может кто то откинет свою жопестость на задний план и всё таки поможет нуждающемуся?
Ответить с цитированием
  #5  
Старый 31.05.2012, 08:07
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

Цитата:
Сообщение от timondrik
...запросы то михаил был бы в одинарных кавычках...
ну а здесь то каким образом это делать...
с этого и надо было начинать www.google.ru/search?q=дельфи+кавычки
Ответить с цитированием
  #6  
Старый 31.05.2012, 08:50
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Цитата:
Сообщение от timondrik
Может кто то откинет свою жопестость на задний план и всё таки поможет нуждающемуся?
Ты во-первых, за словами следи дружок.
Во-вторых, что для тебя же лучше, прийти к решению самому или же получить просто готовое решение сразу?
В-третьих, http://www.delphisources.ru/forum/sh...193#post106193
__________________
Google в помощь
Ответить с цитированием
  #7  
Старый 31.05.2012, 09:14
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от timondrik
Может кто то откинет свою жопестость на задний план и всё таки поможет нуждающемуся?

Раз!
Второго предупреждения не будет.

Теперь по существу. Вот ты сам сказал, что в 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  
Старый 31.05.2012, 09:55
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Цитата:
Сообщение от lmikle
Quote (кажется так)
Код:
QuotedStr('михаил');
__________________
Google в помощь
Ответить с цитированием
  #9  
Старый 31.05.2012, 20:59
timondrik timondrik вне форума
Прохожий
 
Регистрация: 12.03.2009
Сообщения: 21
Репутация: -122
По умолчанию

Вот теперь действительно помощь так помощь, точно и понятно, спасибо большое.
Да кстати насчет моих высказываний за которыми я должен следить. Эта реакция называется "воспринять ситуацию в штыки", т.к. если бы первые два ответа были бы более дружелюбного характера и был полезным, то и высказывания были бы соответственные.
Форум пологаю чтобы рассуждать с пользой, а не пытаться улечить топикстартера в слабоумие.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter