![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос [D5, Рђccess]
Ветерок © (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