Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.18;
Скачать: CL | DM;

Вниз

помогите написать запрос на 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.054 c
14-1132738883
ANB
2005-11-23 12:41
2005.12.18
Куда делся ADABAS ?


14-1132752475
Хинт
2005-11-23 16:27
2005.12.18
Баннеры на сайт


3-1130594032
Tom
2005-10-29 17:53
2005.12.18
скопировать данные из одной table одной базы в другой table друго


2-1133758088
msgipss
2005-12-05 07:48
2005.12.18
Кто удаляет объекты возвращаемые функцией ?


2-1133426018
coral
2005-12-01 11:33
2005.12.18
ADO