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

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

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

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 02.03.2010, 07:53   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как в Access задаются русские имена полей в запросах!
Дружище, помоему Акцессу по барабану на каком языке написать наименования полей. [] применяются там где в именах есть пробел, а на каком языке это помоему все равно
I'm learning to live...
Stilet вне форума
Старый 02.03.2010, 10:05   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Stilet
[] применяются там где в именах есть пробел, а на каком языке это помоему все равно
По сути, немного не так...
По сути - Вы абсолютно правы, действительно, на каком языке писать - не важно.
Но квадратные скобки позволяют отделить именно идентификаторы (имена таблиц, имена полей)
Дело в том, что можно назвать поле, например, HOW-MUCH, или SUM или SELECT или WHERE - и по английски, и без пробелов, а без использования квадратных скобок всё равно будет ошибка в запросе...

Другое дело — я бы вообще на уровне СУБД запретил использовать ключевые слова в качестве имён таблиц и полей - ибо это прямой путь к проблемам!


p.s. боюсь, что автору топика наше обсуждение покажется излишним , а вот имя поля у него изначально именно с пробелом, что и вызвало проблему...
Serge_Bliznykov вне форума
Старый 03.03.2010, 04:29   #13
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
Радость

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
если бы Вы запустили MS Access и там написали этот свой запрос, то сами бы сразу увидели, как в Access задаются русские имена полей в запросах!

попробуйте:
Код:
begin
  adoquery1.Active:=false;
  adoquery1.SQL.Text:='select * from Sotrudniki where Sotrudniki.[Номер сотрудника]  = 2';
  adoquery1.Open;
end;
p.s. обратите внимание, я выкинул из вашего примера adoquery1.SQL.Clear;
т.к. в данном случае это НЕ НУЖНО (присвоение тексту обнулит всё, что было в тексте ранее. Clear нужно делать, если строчки в запрос добавляются через .SQL.Add(...)
огромное спасибо все получилось

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
По сути, немного не так...
По сути - Вы абсолютно правы, действительно, на каком языке писать - не важно.
Но квадратные скобки позволяют отделить именно идентификаторы (имена таблиц, имена полей)
Дело в том, что можно назвать поле, например, HOW-MUCH, или SUM или SELECT или WHERE - и по английски, и без пробелов, а без использования квадратных скобок всё равно будет ошибка в запросе...

Другое дело — я бы вообще на уровне СУБД запретил использовать ключевые слова в качестве имён таблиц и полей - ибо это прямой путь к проблемам!


p.s. боюсь, что автору топика наше обсуждение покажется излишним , а вот имя поля у него изначально именно с пробелом, что и вызвало проблему...
Ну почему же не излишнем
Информация которой не владеешь всегда к стате И цель не тупо сделать программу а понять и научиться а так же усвоить ошибки которые я допустил и в дальней шем их не повторять

Последний раз редактировалось Stilet; 03.03.2010 в 07:35.
Lokos вне форума
Старый 03.03.2010, 07:37   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я бы вообще на уровне СУБД запретил использовать ключевые слова в качестве имён таблиц и полей
Ну да... Это ты скажи разработчикам СУБД, а они скажут что тогда придется еще делать проверки имени поля на совпадение с именами имеющихся в базе функций, переменных, пакетов и пр...
Тут если так запрещать то получится ну очень пуританская СУБД.
Просто программисту нужно думать Моском_Своим, и имена давать такие чтоб однозначно было ясна их уникальность.
I'm learning to live...
Stilet вне форума
Старый 03.03.2010, 07:58   #15
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
Злость

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну да... Это ты скажи разработчикам СУБД, а они скажут что тогда придется еще делать проверки имени поля на совпадение с именами имеющихся в базе функций, переменных, пакетов и пр...
Тут если так запрещать то получится ну очень пуританская СУБД.
Просто программисту нужно думать Моском_Своим, и имена давать такие чтоб однозначно было ясна их уникальность.
Подскажи как сделать запрос с датой
Код:
ADOQCS.Active:=false;
               ADOQCS.SQL.Text:=('select* from copySotr where [copySotr.Дата  приема]='+PoiskDataPriem.Text+');
               ADOQCS.Open;
дата указывается в '' апострофах но вставить в запрос '''просто не получается пишет ошибку((((
Lokos вне форума
Старый 03.03.2010, 08:09   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Подскажи как сделать запрос с датой
вообще-то, дата-константа в MS Access задаётся через обрамление символом #
НО!
КРАЙНЕ НЕ РЕКОМЕНДУЮ переводить дату в текст запроса! НАМНОГО лучше использовать параметрический запрос:
Код:
ADOQCS.Active:=false;
               ADOQCS.SQL.Text:=('select* from copySotr where [copySotr.Дата  приема]= :PoiskDate');
               ADOQCS.Parameters.ParamByName('PoiskDate').Value:= DateTimePicker1.Date;
               ADOQCS.Open;
Serge_Bliznykov вне форума
Старый 03.03.2010, 08:15   #17
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
вообще-то, дата-константа в MS Access задаётся через обрамление символом #
НО!
КРАЙНЕ НЕ РЕКОМЕНДУЮ переводить дату в текст запроса! НАМНОГО лучше использовать параметрический запрос:
Код:
ADOQCS.Active:=false;
               ADOQCS.SQL.Text:=('select* from copySotr where [copySotr.Дата  приема]= :PoiskDate');
               ADOQCS.Parameters.ParamByName('PoiskDate').Value:= DateTimePicker1.Date;
               ADOQCS.Open;
Выдается ошибка не соотвецтвие типов данных в условии отбора
Lokos вне форума
Старый 03.03.2010, 08:18   #18
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
.Parameters
Терпеть не могу эти параметризации.
Делаю так:
Код:
'select* from copySotr where [copySotr.Дата  приема]='+formatDateTime("#yyyy-mm-dd#",DateTimePicker1.Date)
Если не ошибаюсь именно # являются в Акцессе разделителями даты
I'm learning to live...
Stilet вне форума
Старый 03.03.2010, 08:23   #19
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Терпеть не могу эти параметризации.
Делаю так:
Код:
'select* from copySotr where [copySotr.Дата  приема]='+formatDateTime("#yyyy-mm-dd#",DateTimePicker1.Date)
Если не ошибаюсь именно # являются в Акцессе разделителями даты
Уверен что в выражении
"#yyyy-mm-dd#" используются именно ковычки
Изменил на апострофы заработало
Lokos вне форума
Старый 03.03.2010, 08:38   #20
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Уверен
Нет. Я же сказал "По-моему". Заработало - пляши.
I'm learning to live...
Stilet вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
автоматическое обновление таблице через запрос sql eda Microsoft Office Excel 8 19.04.2011 12:47
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
параметрический запрос с помощью Microsoft Query Alexa24 Microsoft Office Excel 1 22.10.2009 15:59
Редактирование записи через компонент Query Macklay БД в Delphi 11 30.06.2009 12:16
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15