Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запрос [D5, Рђccess]


Страницы:   1 2

Ветерок ©   (2003-10-31 13:21:00) 

Подскажите, пожалуйста чего можно сделать в такой ситуации. есть база данных в Access, пытаюсь с помощью Delphi вытащить с нее данные для работы. Пишу так:
q2.close;
q1.SQL.clear;
q2.ParamCheck:= true;
q1.SQL.Text:="SELECT Sum([погрузка]![Вес])AS Всего FROM [погрузка] WHERE (((([погрузка].Месяц)=:mes) or (([погрузка].Месяц)<:mes1)) AND (([погрузка].[код])=1) and (([погрузка].Наименование)=:n) and (([погрузка].Сообщение)=:s))";
q2.parameters[0].value:= trim(edit1.text);
q2.parameters[1].value:= trim(edit1.text);
q2.parameters[2].value:= trim(edit3.text);
q2.parameters[3].value:= trim(edit4.text);
q2.open;
Delphi выдает ошибку String literals may have at most 255 elements на 4 строке.
Что можно сделать, чтобы избежать ошибки?


paul_k   (2003-10-31 14:49:00) [21]

текст запроса
SELECT Sum([погрузка]![Вес])AS Всего FROM [погрузка] WHERE (((([погрузка].Месяц)=:mes) or (([погрузка].Месяц)<:mes1)) AND (([погрузка].[код])=1) and (([погрузка].Наименование)=:n) and (([погрузка].Сообщение)=:s))
лучше переписать как
SELECT Sum(погрузка.Вес)AS Всего
FROM погрузка
WHERE погрузка.Месяц in (:mes,:mes1)
AND погрузка.код=1
and погрузка.Наименование=:n
and погрузка.Сообщение=:s


имена таблиц и полей написанные кирилицей есть не совсем корректно (точнее совсем некорректно)


sniknik   (2003-10-31 14:44:00) [22]

а вот так?

q1.SQL.Add("SELECT Sum(P.[Вес]) AS [Всего]");
q1.SQL.Add("FROM [погрузка] AS P");
q1.SQL.Add("WHERE ((P.[Месяц]=:mes) or (P.[Месяц]<:mes1) and (P.[код]=1))");
q1.SQL.Add("and (P.[Наименование]=:n) and (P.[Сообщение]=:s)");


(логика условия естественно не сохранена, только ты знаеш чего хотел этим добится, просто выкинуты явно лишние скобки)

и кстати
> Опять слишком мало параметров
это где? на какой строке выдает?


chtr   (2003-10-31 14:42:00) [23]


> Поробовала Add. Выдает ошибку, что слишком мало параметров.
> требуется 5. У меня всего 4 :(

Брось код поглядеть?


chtr   (2003-10-31 14:42:00) [24]


> Поробовала Add. Выдает ошибку, что слишком мало параметров.
> требуется 5. У меня всего 4 :(

Брось код поглядеть?


Ветерок   (2003-10-31 14:29:00) [25]

Не проходит такой номер с FROM [погрузка] AS P WHERE ... Опять слишком мало параметров


sniknik   (2003-10-31 13:50:00) [26]

не то, вся строка запроса = 212 символов.
так четвертая строка это не на параметрах? а на q1.SQL.Text?

или это не вся? можеш сократить
... FROM [погрузка] AS P WHERE ...
и вместо ([погрузка].месяц=:mes) = (P.месяц=:mes)


Sandman25   (2003-10-31 13:48:00) [27]

Настройте SQL.Text в Design-time, чтобы найти ошибку.


paul_k   (2003-10-31 13:47:00) [28]

Такую ошибку Access выдает , если поле неправильно написано
удали все лишние скобки в том числе и квадратные.
проверь есть ли в таблице поля, которые присутствуют в запросе


Ветерок   (2003-10-31 13:42:00) [29]

Поробовала Add. Выдает ошибку, что слишком мало параметров. требуется 5. У меня всего 4 :(


Sandman25   (2003-10-31 13:35:00) [30]

SQL. Add


Ветерок   (2003-10-31 13:35:00) [31]

Я знаю? что строка длиннее№ Я пробовала урезать и написать в


Sandman25   (2003-10-31 13:29:00) [32]

Вместо SQL.Text := "строка длиннее 255 символов"
делать
SQL.Add("строка");
SQL.Add("длиннее");
SQL.Add("255 символов");


sniknik   (2003-10-31 13:27:00) [33]

вот это например
q2.parameters[3].value:= Copy(trim(edit4.text), 1, 255);


bushmen   (2003-10-31 13:27:00) [34]

Возьми с сайта Борланда обновления для Delphi5


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо