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

Вниз

помогите написать запрос на SQL - не ясна одна буква   Найти похожие ветки 

 
Fer   (2005-11-28 21:03) [0]

ADOQuery1.SQL.Add("select студент, группа from студенты where прослушано > 2"); - работает
ADOQuery1.SQL.Add("select группа from группы where группа = П-2"); - не работает.
Ругается:
[Microsoft][Драйвер ODBC Microsoft Acсess] Слишком мало параметров. Требуется 1.
Названия таблиц по-русски, название столбцов по-русски и группа называется по-русски П-2. Как вставить её в запрос чтобы он работал?
""П-2"" - тоже ругается. Что пишут в таких случаях?


 
Palladin ©   (2005-11-28 21:14) [1]

ADOQuery1.SQL.Add("select группа from группы where [группа] = "#39"П-2"#39); - не работает.

в таких случаях изучают типы данных


 
Fer   (2005-11-28 22:41) [2]

Какие уж тут типы - текстовый, единственное поле в таблице группы, она же индекс где совпадения не допускаются. По этому же полю связана с таблицей студенты.


 
Fer   (2005-11-28 22:48) [3]

SELECT группы.группа
FROM группы
WHERE (((группы.группа)="П-2")); - вариант запроса который работает в Access 2000 - составлен с помощью конструктора в самом Access 2000

Перенесённый же в Delphi вылетает с той же ошибкой.


 
Virgo_Style ©   (2005-11-28 22:52) [4]

Попробуй все-таки [1], вдруг поможет?

hint1: русские названия полей можно на всякий случай писать в квадратных скобках, надежнее
hint2: в запросе нужны одинарные кавычки: "П-2"


 
sniknik ©   (2005-11-28 23:37) [5]

> вдруг поможет?
часта случайна даааа? ;о))

серьезно. должно помочь, только одними скобочками([]) видать не обойдешся, надо все "нестандартные"(читай русские) имена в них заключать.

> ... составлен с помощью конструктора в самом Access 2000
с помощью конструктора аксесса и для аксесса, не для дельфей(/ADO+Jet)... есть разница. зачастую надо после него править.


 
sniknik ©   (2005-11-28 23:55) [6]

хм. на хинты внимания не обратил. ;(

по второму, Jet вообщето "ест" любые кавычки, это ODBC не понимает двойных и "коверкает" запрос на передаче так что тот понять не может.
так, что можно вместо правки запроса сделать подключение напрямую. без "зигзага" через ODBC, тоже получится.


 
Wano ©   (2005-11-29 09:59) [7]

> ADOQuery1.SQL.Add("select группа from группы where группа = П-2");

ADOQuery1.SQL.Add("select группа from группы where группа = "+""""+"П-2"+"""");


 
msguns ©   (2005-11-29 10:14) [8]

with ADOQuery1 do
 begin
  SQL.Add("select группа from группы where группа = :p1);
  Parameters.ParamByName("p1").Value := "П-2";
  Open;
  ...
 end;


 
pavel_guzhanov ©   (2005-11-29 10:16) [9]

ADOQuery1.SQL.Add("select группа from группы where группа =:Name");
ADOQuery1.Parameters[0].Value:="П-2"ж
ADOQuery1.Open;


 
pavel_guzhanov ©   (2005-11-29 10:17) [10]


> msguns ©   (29.11.05 10:14) [8]


:o))   я опоздал


 
Fer   (2005-11-29 10:38) [11]

Ребята, вы монстры! Варианты 1,7,8,9 - работают! В смысле ваще все варианты работают! Пасиб огромный!
Остаётся понять что такое #39... - может подскажите?
Уж очень красиво и лаконично.
И ещё.. вот мучаю я ODBC в связке с ADO - а в книжках постоянно встречаю что ODBC вообе самостоятельная технолигия доступа к данным.
Её что - можно саму по себе юзать? Без ADO?
И тут в 6 тоже пишут тчо сделать запрос на прямую без зигзага в ODBC - в смысле ADO может работать отдельно без ODBC ?


 
sniknik ©   (2005-11-29 11:00) [12]

что такое #39 = " (представленое кодом символа)

> а в книжках постоянно встречаю что ODBC вообе самостоятельная технолигия доступа к данным.
вранье. раньше может так и было, сейчас все друг на друга "повязаны".
убедись сам задай в своем подключении простой select * from [несуществующая таблица] и почитай от кого вернется ошибка (будет чтото вроде "ODBC сообшает ... (ядро jet не нашло таблицу)"). делай выводы кто на самом деле выполняет запрос а кто посредник.

> в смысле ADO может работать отдельно без ODBC ?
это шутка чтоли? ADO самостоятельный продукт под OLEDB провайдеров, весь ODBC там представлен единственным провайдером... а драйвера ODBC частенько представляют собой "пустышки" с редиректами на те же OLEDB провайдеры. (как в случае с тем же Jet-ом)



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

Форум: "Начинающим";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.013 c
6-1126157400
JohnS
2005-09-08 09:30
2005.12.18
Indy + FTP


14-1132262245
Kerk
2005-11-18 00:17
2005.12.18
kladovka + delphibase


4-1129480611
FunkyByte
2005-10-16 20:36
2005.12.18
Как получить путь к папке "Мои документы"?


2-1133445304
oleggar
2005-12-01 16:55
2005.12.18
word8


14-1132822312
HabarovSergey
2005-11-24 11:51
2005.12.18
Кто нибуть знает что это за компонеты для Delphi?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский