![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADO [D5]
Vikuksa © (2002-07-24 16:23:00)Подскажите кто знает!
Работаю с базой *.mdb. В MS Access создаю запрос, его результат 29 записей.
Перенашу этот запрос в ADOQuery, активизирую, а он (гад) ни одной записи не возвращает!
ПИТОН (2002-07-25 05:55:00) [1]Сделай ADOTable и в качестве TableName укажи имя своего запроса
sniknik (2002-07-24 18:24:00) [2]не жаль трафика на качание скачай прогу http://delphi.mastak.ru/download/585.zipи попробуй запрос в ней, прога именно для тестов запросов через адо предназначалась. там хоть ошибку скажет если есть.
(не сочти саморекламой :-),тем более у проги есть небольшой глюк при запросе в несколько строк строки должны оканчиватся пробелом, (уже исправлено но здесь еще старый вариант))
Vikuksa (2002-07-24 18:00:00) [3]ADOQuery1.Active := false;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add("SELECT DatePart("ww",[Входящие].[Дата_поступления]), Count(s.[Дата_поступления]) ");
ADOQuery1.SQL.Add("FROM [Входящие] s ");
ADOQuery1.SQL.Add("WHERE (((s.[Входящий_кому])="10") AND ((s.[Содержание]) Like "*отчет*") AND ");
ADOQuery1.SQL.Add("((s.[Год])=Year(Date())) AND ((DatePart("ww",s.[Дата_поступления])) Is Not Null) AND ((DatePart("ww",s.[Дата_поступления])<DatePart("ww",DateAdd("w",-1,Date())))=True)) ");
ADOQuery1.SQL.Add("GROUP BY DatePart("ww",s.[Дата_поступления])");
ADOQuery1.Open;
ADOQuery1.Last; ADOQuery1.First;
Delirium (2002-07-24 17:56:00) [4]> Vikuksa
Дай код из Delphi как заполняешь ADOQuery.SQL, может где-то ковычки пропустила...
Vikuksa (2002-07-24 17:54:00) [5]проверяла в Accesse
Vikuksa (2002-07-24 17:53:00) [6]Сам запрос правильный, честное слово!
Delirium (2002-07-24 17:52:00) [7]> LordOfSilence
"И что такое X<Y=True? Это я про сравнение частей дат.
Может достаточно просто DatePart(X)<DatePart(Y)?"
Для ACCESS это не важно
> Vikuksa
Проверь запрос в самом ACCESS
Johnmen (2002-07-24 17:50:00) [8]Группировка м.б. только по совокупности полей !
LordOfSilence (2002-07-24 17:43:00) [9]Пардон, а скобки точно расставлены по своим местам?
Может что-то пропустили при переносе?
И что такое X<Y=True? Это я про сравнение частей дат.
Может достаточно просто DatePart(X)<DatePart(Y)?
Vikuksa (2002-07-24 17:39:00) [10]НЕПОЛУЧААААААААЕЕЕЕЕЕТТТССССССЯЯЯЯЯЯЯ!!!!!!!
Delirium (2002-07-24 17:34:00) [11]Все русские названия - в квадратные скобки:
SELECT DatePart("ww",s.[Дата_поступления]),Count(s.[Дата_поступления])
FROM [Входящие] s
WHERE ((s.[Входящий_кому]="10") AND (s.[Содержание] Like "*отчет*") AND (s.[Год]=Year(Date())
AND (DatePart("ww",s.[Дата_поступления]) Is Not Null) AND
(DatePart("ww",s.[Дата_поступления])<DatePart("ww",DateAdd("w",-1,Date())))=True))
GROUP BY DatePart("ww",s.[Дата_поступления]);
Vikuksa (2002-07-24 17:32:00) [12]ЛЛЛЛЛЛЛЛЛЛЮЮЮЮЮЮЮЮЮДДДДДДДДИИИИИИИИИИИ!!!!!! Дайте еще пару советиков, плз!
Vikuksa (2002-07-24 17:03:00) [13]LordOfSilence: спасибо так уже пробовала!
А база не моя и под нее много прог написано поэтому названия уже не поменять!
sniknik (2002-07-24 17:01:00) [14]еще возможно формат даты не совпадает со стандартом Access-а. если дату строкой писать надо в таких кавычках ##. но лутше через параметр.
(у тебя дата в условии, проверь что на выходе получается)
LordOfSilence (2002-07-24 16:56:00) [15]1. Попробуйте сделать по-другому. Не пишите все это в свойстве
SQL копонента TQuery. Ваш запрос ведь как-то называется
в среде Access, например "MyQuery". Вот и напишите
Select * from MyQuery. Не гарантирую, но попробуйте.
Я так понимаю, что Вы используете чисто Аксесовские функции
DatePart и т.д. Вот пусть сам с ними и разбирается.
Пардон, если даю неправильную наводку.
2. Лично мое мнение, не претендующее на какую-либо бесспорность:
никогда не именуйте таблицы и поля русскими символами.
Vikuksa (2002-07-24 16:45:00) [16]Избавиться не получиться.
Johnmen (2002-07-24 16:43:00) [17]Надо бы избавиться от русских имен,
или брать их в кавычки...
Vikuksa (2002-07-24 16:37:00) [18]Access"97.
Параметров нет, а так обычный запрос на выборку:
SELECT DatePart("ww",s.Дата_поступления),Count(s.Дата_поступления)
FROM Входящие s
WHERE ((s.Входящий_кому="10") AND (s.Содержание Like "*отчет*") AND (s.Год=Year(Date())
AND (DatePart("ww",s.Дата_поступления) Is Not Null) AND
(DatePart("ww",s.Дата_поступления)<DatePart("ww",DateAdd("w",-1,Date())))=True))
GROUP BY DatePart("ww",s.Дата_поступления);
LordOfSilence (2002-07-24 16:33:00) [19]Вика, необходимо указать какой у Вас Access, приведите текст запроса, есть ли у него параметры, то есть опишите подробней свою проблему
Vikuksa (2002-07-24 16:31:00) [20]обижаешь! не такая я уж и дурочка...