Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема запрос с применением Драйвер ODBC Microsoft Access (число прочтений - 2134 )
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
запрос с применением Драйвер ODBC Microsoft Access
17. Сентября 2010 :: 09:46
Печать  
привет всем!
бьюсь на запросом к файлу Access. Для некоторых функций выдается ошибка (такие как dateadd), какие то работают (round),
функция cast - выдает, что отсутствует какой то параметр. Не подскажете, где можно нарыть справочную информацию, что можно и как использовать в запросах ?
соединение делаю так:

Код
Выбрать все
	стрсоединение="Driver={Microsoft Access Driver (*.mdb)};Dbq=" +СокрЛП(файлmdb)+";Uid=Admin;Pwd=;";


	_база =СоздатьОбъект("ODBCDatabase");
	Если _база.Соединение(стрсоединение) =0 Тогда
		Предупреждение("Ошибка открытия файла "+файлmdb, 60);
		Возврат 0;
	КонецЕсли;

	_рс =СоздатьОбъект("ODBCRecordSet");
	_рс.УстБД(_база);

 

  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: запрос с применением Драйвер ODBC Microsoft Access
Ответ #1 - 17. Сентября 2010 :: 09:59
Печать  
ol писал(а) 17. Сентября 2010 :: 09:46:
привет всем!
бьюсь на запросом к файлу Access. Для некоторых функций выдается ошибка (такие как dateadd), какие то работают (round),
функция cast - выдает, что отсутствует какой то параметр. Не подскажете, где можно нарыть справочную информацию, что можно и как использовать в запросах ?
соединение делаю так:

Код
Выбрать все
	стрсоединение="Driver={Microsoft Access Driver (*.mdb)};Dbq=" +СокрЛП(файлmdb)+";Uid=Admin;Pwd=;";


	_база =СоздатьОбъект("ODBCDatabase");  
	Если _база.Соединение(стрсоединение) =0 Тогда
		Предупреждение("Ошибка открытия файла "+файлmdb, 60);
		Возврат 0;
	КонецЕсли;

	_рс =СоздатьОбъект("ODBCRecordSet");
	_рс.УстБД(_база);

 


приведите полностью запрос.
так скорее всего в Access нет dateadd вот она и не работает.
Вы должны выполнять sql запрос в терминах той базы
в Вашем случае в терминах Access
  
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: запрос с применением Драйвер ODBC Microsoft Access
Ответ #2 - 17. Сентября 2010 :: 10:22
Печать  
Код
Выбрать все
	select
	doubletime as МиллисекундСНачалаОтсчета  
	,ROUND(doubletime/86400000) as СутокСНачалаОтсчета  
	,DATEADD(day,ROUND(doubletime/86400000),:ДатаНачалаОтсчета_doubletime) as ТекДата
	from [Data Log # 1] табДанные

 



такой вот

а ошибка

Код
Выбрать все
_рс.выполнитьинструкцию(тз,таб);
{H:\PTR\ERT\DEV\ЗАМОРОЖЕНЫ\ИМПОРТ ACCESS.ERT(194)}: State
07002, native 4294964286, message [Microsoft][Драйвер ODBC Microsoft Access]
Слишком мало параметров. Требуется 1.
 

  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: запрос с применением Драйвер ODBC Microsoft Access
Ответ #3 - 17. Сентября 2010 :: 10:33
Печать  
добавьте
_рс.Отладка(1)
и отлаживайте запрос в Access
  
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: запрос с применением Драйвер ODBC Microsoft Access
Ответ #4 - 17. Сентября 2010 :: 10:58
Печать  
Z1 писал(а) 17. Сентября 2010 :: 10:33:
добавьте
_рс.Отладка(1)
и отлаживайте запрос в Access


о! помогло, спасибо за совет. так заработало:

Код
Выбрать все
	select
	doubletime as МиллисекундСНачалаОтсчета
	,DATEADD('y',ROUND(doubletime/86400000),'01.01.1970') as ТекДата
	from [Data Log # 1] табДанные

 

  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать