![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Врменная таблийа в Access
Vantage-10 © (2005-02-07 20:03:00)Как используются временные таблицы в Access?
в MS SQL
select ... into #temp
from ...
where ....
select filed1, field2
from #temp
where ....
Такое работает, а как должно быть такое в MS Access?
sniknik (2005-02-08 22:43:00) [1]по порядку
date зарезервированное слово, time как можно догадатся тоже. (явный глюк, может есть еще, неохота "разгребать")
к сведению, все "непонятное" jet может определить как параметр (в аксессе этому будет запрос на ввод значения вручную).
псевдонимы знаеш что такое?
делаеш к примеру так select o.name from obj_aam_reader as o(вместе с примитивным форматированием это позволит привести запрос в более понятному/приятному виду)
далее, неявные обьеденения явно не добавляют запросу производительности.
почитай о конструкциях [inner, left, right] join
пригодится.
еще что считает "count(param0) as pcaunt"? вернее что ожидаеш, такто понятно что, но новички часто на этом "ловятся".
(если слово Null чтото тебе говорит в этом контексте, можеш не отвечать на этот вопрос )
это про запрос. но опять неясности, как ты его вызываеш?
для этого конкретно с заданными параметрами paramCheck до занесения запроса должен быть true, и естественно значения заданы после.
все в общем то, кроме мелочи, обязательно новое и непонятное тебе пробовать на рабочих/тяжолых/плохо написанных запросах? почему не сделать попроще(например 'SELECT * FROM protocol BETWEEN [Time] :dt1 AND :dt2'), и на нем потренироваться, по крайней мере глюки самого запроса не повлияют на восприятие нового.
Vantage-10 (2005-02-08 18:48:00) [2]вот весь запрос
SELECT name, description, param0, name_xx, date, count(param0) as pcaunt
FROM (SELECT obj_aam_reader.name, event.description, protocol.param0, obj_department.name as name_xx, protocol.date
FROM Protocol, obj_aam_reader, event, OBJ_DEPARTMENT, obj_person
WHERE (protocol.objtype='AAM_READER') AND (obj_person.id=protocol.param1) AND (obj_department.id=obj_person.parent_id) AND (protocol.objid=obj_aam_reader.id) AND (protocol.action=event.action and (event.objtype='AAM_READER'))
AND ((protocol.Time) BETWEEN :dt1 AND :dt2)
) DERIVEDTBL
GROUP BY name, description, param0, name_xx, date
sniknik (2005-02-08 11:38:00) [3]> если установить paramCheck в false то выходит сообщение List index out of bounds
потому что кроме "псевдо" параметров
> #01/01/2005 08: 00: 00#
у тебя есть и нормальные (возможно, гдето в трех точках), отключив автосоздание параметров ты убрал и их, в списке параметров теперь пусто, и любая попытка обратится к несушествующему элементу в списке (задание значения параметру)... = вышенаписаная ошибка.
p.s. информацию желательно приводить полнее, чтобы не гадать, что есть и чего нет. (а, три точки в описаниях глюков/коде, так, меня уже просто начинают раздражать ;о)))
Vantage-10 (2005-02-08 09:18:00) [4]если установить paramCheck в false то выходит сообщение List index out of bounds
Fay (2005-02-07 21:18:00) [5]Ругается на 01/01/2005 08 :00 :00
Убери ParamCheck
Vantage-10 (2005-02-07 21:01:00) [6]или в таком запросе к MS Access
SELECT field1, field2, count(field2) as pcaunt
FROM
(select ...from ....
where datetime_field BETWEEN #01/01/2005 08:00:00# AND #03/03/2005 17:00:00#)
) TBL
GROUP BY field1, field2
выводит ошибку "Неправильно определен объект ParametrюПредоставлены неполные или несовместимые сведения"
тоже сомаое происходит если дату и время отправлять в виде:
... Between :dt1 and :dt2 ...
ADOQuery1.Parameters[0].Value := DateTimePicker1.DateTime;
ADOQuery1.Parameters[1].Value := DateTimePicker2.DateTime;
aus (2005-02-07 20:28:00) [7]Vantage-10 (07.02.05 20:03)
должно быть такое в MS Access?
Нет такого.