Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Pro100r
0 / 0 / 0
Регистрация: 07.08.2010
Сообщений: 10
1

Ошибка 0x80040E10 при выводе даты

13.08.2010, 01:17. Просмотров 989. Ответов 8
Метки нет (Все метки)

В базе Access 2000 лежат даты занесения записи..
получены они были через функцию Date , она выдает в формате 04.06.2004
день меся год
И потом банально без проблем записывается в базу..

теперь когда мне требуется выдернуть из базы в рекордсет нужные по дате строки я получаю ошибку 0x80040E10
вот так выглядит запрос
set Recordset2 = Server.CreateObject('ADODB.Recordset')
Recordset2.ActiveConnection = 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source= '&dBpath
Recordset2.Source = 'SELECT * FROM exam Where ( (Exam = '&Exam&') AND (studGroup = '& StudGroup &') AND (theDate = #'& TheDate &'#) )'
и ведь не работает!
я уже столько про дату перечитал, и уже просто запутался..
пробовал делать
TheDate = Date
TheDate = Replace(TheDate, '.', '/')
что бы дата и писалась в базу в формате день/месяц/год - пишется!
но прочитать нельзя..

Как написать?? Мне уже всеравно какие там разделители будут: точки запятые слеши тире или звездочки..
Главное что бы работало.. и формат даты был день месяц год
чесное слово убил весь вечер.. но так ничего и не получилось..
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2010, 01:17
Ответы с готовыми решениями:

Не совпадает формат даты при вводе и выводе
Есть такой файлик: <HTML> <% Session.LCID=1049 Response.Write 'Today is:' & Now() & ' '...

Интерент-магазин: ошибка при загрузке или выводе изображения
Привет!В общем такая проблема, пытаюсь сделать интерент-магазин по...

Ошибка при вставке даты
когда убираю Date и @Date и строку d.InsertParameters.Add("Date", DateTime.Now.ToString()); то...

Ошибка при выводе данных из базы MS SQL Server
Доброе время суток! Пишу программу, которая должна из MS SQL Server вывести таблицу на экран. Но в...

Редактирование даты при выводе
Есть база в ней номера с датой записи в колонке data хранится это все как 2018-06-01. Делаем запрос...

8
shuff
0 / 0 / 0
Регистрация: 18.06.2009
Сообщений: 53
13.08.2010, 17:23 2
Да уж, с датой я думаю аждому пришлось повозиться.
Не совсем понят, чито тебе нужно, но может быть это тебе поможет(код рабочий):
Код
 
dnSmallForBase=(''&Month(Date)&'/'&Day(Date)&'/'&Year(Date)&'')
SQL = 'SELECT * FROM Article WHERE data_over<#'&dnSmallForBase&'# ORDER BY data_on DESC'
Т.е. дата в запросе должна выглядеть так: #mm/dd/yyyy#

Удачи.
0
Pro100r
0 / 0 / 0
Регистрация: 07.08.2010
Сообщений: 10
13.08.2010, 18:14  [ТС] 3
..мне надо вы дернуть из таблицы строки с одинаковым полем TheDate имеющим формат день.месяц.год

Вообщем чесно говоря я счас просто забил на это.. и сделал так что бы дата записывалась как строка вида 26_10_1981 , все стало на много проще.. а для вывода на экран конвертирую _ в точку.. вот и все..

я считаю что это тоже решение проблемы.. правда только в том случаее когда сравнивать надо.. на равенство больше/меньше опр. даты уже не получится..
0
WebLamer
15.08.2010, 21:55 4
а через command и параметры не пробовали
у меня все гладко и красиво
Код
	Dim objCon, objRst, objCmd, strCon
	Set objCon = Server.CreateObject('ADODB.Connection') 
	strCon = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' & Application('DBPath') & 'db.mdb'& ';Persist Security Info=False'
	Set objRst = Server.CreateObject('ADODB.Recordset')

	objCon.Open(strCon)

    Set objCmd = Server.CreateObject('ADODB.Command')
   	objCmd.ActiveConnection = objCon

   	objCmd.CommandText = 'SELECT TOP 3 * FROM Table1 WHERE Date > ? ORDER BY Date DESC'

    objCmd.Prepared = True

    objCmd.Parameters.Append objCmd.CreateParameter('Date', adDate, , 8)

    objCmd('Date') = '01/01/01'
  	Set objRst = objCmd.Execute( ,,adCmdText)
Я тут его моненько поменял но думаю он остался рабочим
15.08.2010, 21:55
kaptur
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 135
16.08.2010, 11:48 5
Решил поделиться своим опытом:
- записую в базу данных дату с тем форматов, что есть на сервере хостинга;
- когда нужно показать дату на сайте, то тут все зависит от желания клиента и уточняется формат показа даты.
- в отдельный файл создается процедура формирования строки показа на сайте.
также можно пойти и при фильтровке данных (отдельно выдергивать день, месяц, год ... ну можно еще и время).

Это намного проще, так как форматы на серверах могут отличаться: на американском один, на австралийском - другой!
Может в этом как я делаю есть 'подводные камни', но пока проблем небыло.
Если интерисует моя процедурка - то пришлю.
0
parashin
0 / 0 / 0
Регистрация: 21.06.2007
Сообщений: 654
16.08.2010, 12:33 6
если дата = текущей то почему бы не написать так:

'SELECT * FROM exam Where ( (Exam = '&Exam&') AND (studGroup = '& StudGroup &') AND (theDate = Date() )'

Тогда точно никакой ошибки с форматом не будет.
0
tsttom
0 / 0 / 2
Регистрация: 24.06.2010
Сообщений: 174
17.08.2010, 14:53 7
Ответ очень простой:
когда ты пишешь дату в формате dd/mm/yyyy ты используешь 'местную культуру'. У тебя данные вводит программуля. Она и ставит все на свои места. А в запросе ты этого не предусмотрел.

а Access иностранец и понимает даты в формате американском
yyyy-mm-dd
0
Pro100r
0 / 0 / 0
Регистрация: 07.08.2010
Сообщений: 10
17.08.2010, 21:58  [ТС] 8
TheDate = Date() -
это подходит только когда запрос на сегодня..
а мне вообще надо на любую дату из таблицы, я уже написал свое решение, для моей проблемы оно подходит а так если реально что то делать с датой то надо всегда конвертировать в американский формат перед записью в бд.. и обратно перед выводом на экран.
Это я понял.. но ..увы.. 11 июня защита диплома.. и программа получилась такая как есть.. ))..
0
tsttom
0 / 0 / 2
Регистрация: 24.06.2010
Сообщений: 174
18.08.2010, 10:07 9
Конвертировать самому ничего не надо. Это делют драйвера и установки в операционной системе. Но когда ты к базе обращаещься напрямую это надо иметь ввиду. Например я когда напрямую лазию по базе то в запросах всегда пишу:

Select * from MyTable
Where MyDate >= '2004-01-01'
0
18.08.2010, 10:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2010, 10:07

Как при выводе даты обрезать вывод минут?
при выборке с минутами выводится - как минуты отрезать? мне только дату надо

[Basic, Exel] При выводе значения из ячейки, не воспринимает формат Даты
Всем привет, хочу обратится за помощью. Написал макрос, который проверяет наличие файла в...

Неправильно отображается германский умлаут при выводе текущей даты в германском формате
Доброго времени суток. Подскажите, пожалуйста в чем ошибка. Мне (в целях саморазвития) необходимо,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru