VB+MYSQL. ошибка c типом DATE

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
maxyc
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 23.05.2004 (Вс) 14:13
Откуда: Новоуральск

VB+MYSQL. ошибка c типом DATE

Сообщение maxyc » 09.10.2007 (Вт) 16:16

Стоит VB 6.0 + MySQL - 4.1.8-max + ODBC драйвера вчера только скачал 3.51... так вот в чем проблемма. все работает прекрассно. но вот только если один из полей имеет тип данных DATE то все летит к чертям с ошибкой "Поставщик данных вернул значение E_FAIL".
Мож VB чо не поддерживает!?

YEAR, TIME работает, DATE, DATETIME уже нет....((

Код: Выделить всё

CREATE TABLE `vse_Personal` (
  `id` int(11) NOT NULL auto_increment,
  `Login` varchar(255) NOT NULL default '',
  `Pass` varchar(128) NOT NULL default '',
  `FName` varchar(255) NOT NULL default '',
  `Name` varchar(255) NOT NULL default '',
  `SName` varchar(255) NOT NULL default '',
  `Sex` enum('men','wom') NOT NULL default 'men',
  `DateOfBirth` date NOT NULL default '0000-00-00',
  `Status` char(1) NOT NULL default '0',
  `Street` varchar(255) NOT NULL default '',
  `House` smallint(6) NOT NULL default '0',
  `Plane` smallint(6) NOT NULL default '0',
  `Telephones` varchar(38) NOT NULL default '',
  `CaptionOfUniver` varchar(255) NOT NULL default '',
  `YearOfFinish` year(4) NOT NULL default '0000',
  `TypeOfDocument` varchar(255) NOT NULL default '',
  `Univer_sn` varchar(255) NOT NULL default '',
  `Skills` varchar(255) NOT NULL default '',
  `Enable` enum('true','false') NOT NULL default 'true',
  `Access` smallint(6) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;


Код: Выделить всё

Dim rsUser As ADODB.Recordset
    Set rsUser = mysql_query("SELECT `id` FROM `vse_Personal` WHERE `login`='" & text1.Text & "' AND `pass`='" & text2.Text & "' ")
msgbox rsUser!id 'Вышыбает здеся



хотя, с другой таблицей
Код: Выделить всё

CREATE TABLE `vse_pcalendar` (
  `id` int(11) NOT NULL auto_increment,
  `user_id` int(11) NOT NULL default '0',
  `title` varchar(255) NOT NULL default '',
  `description` text NOT NULL,
  `date` date NOT NULL default '0000-00-00',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;

Код: Выделить всё

Dim rsCalendar  As ADODB.Recordset
   Set rsCalendar = mysql_query("SELECT MAX(`id`) as max_id FROM `vse_pcalendar` WHERE `date`='" & Year & ":" & Month & ":" & Day & "' AND `user_id`=" & user.id)

в этой таблице все гут! пинаюсь уже с час, 10 раз синтаксис проверил


если кто мог бы поделитесь ссылочкой как посчитать unix time? пара есть варианто нашел. но они рабочие только на словах
=(

с ув. MaXyC
заранее вам благодарен...

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 09.10.2007 (Вт) 17:21

Вышибает - понятие оч широкое. Есть такое понятие, как текст ошибки. Знакомо? Мож у тебя и юзера такого нет)
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

maxyc
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 23.05.2004 (Вс) 14:13
Откуда: Новоуральск

Сообщение maxyc » 10.10.2007 (Ср) 13:50

то все летит к чертям с ошибкой "Поставщик данных вернул значение E_FAIL".

это текст ошипки

тут же с ЭТИМ же юзверем но с другой таблицей все работает... понимаю что ошипка из разряда руки не от туда. просто спросил мало ли были случаи у Вас. этот вопрос закроем наверное, второй вопросик осталсо

если кто мог бы поделитесь ссылочкой как посчитать unix time? пара есть варианто нашел. но они рабочие только на словах
=(
заранее вам благодарен...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 10.10.2007 (Ср) 13:55

если кто мог бы поделитесь ссылочкой как посчитать unix time?


Видимо имелось ввиду unix timestamp. Что значит, как посчитать?

Как сконвертировать VB-шный Date в UTS ? Или наоборот?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

maxyc
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 23.05.2004 (Вс) 14:13
Откуда: Новоуральск

Сообщение maxyc » 15.10.2007 (Пн) 9:26

выполнить обычный vb date в unix timestamp...

да ваще чот хрень какая-то получается. программа вылетает с ошибкой "Поставщик данных вернуло значение E_FAIL" и все. и мыслей нет никаких. При чем вылетает только когда одно из полей таблицы имеет тип DATE DATETIME TEXT... другие пока не заметил...
заранее вам благодарен...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.10.2007 (Пн) 10:23

ODBC-драйвера к MySQL немного кривоваты, даже версии 3.51.
Если возможно, попробуй использовать не стандартные провайдеры, а клиентскую библиотеку (libmysqlb.dll) и соответствующие процедуры из нее, названия и синтаксис которых совпадает с процедурами для PHP.
Правда это потребует большой переделки программы, да и подход такой неправилен, но может быть он тебе подойдет.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 15.10.2007 (Пн) 14:51

alibek
Это как раз-правильный подход. Работа с СУБД через интерфейс, который родной и полностью документированный.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.10.2007 (Пн) 16:11

Нет, это кривой подход.
Правильный подход -- использовать стандартные интерфейсы, ODBC, ADO, DAO. Но из-за кривости провайдеров приходится использовать самодельный интерфейс, который совместим только с MySQL.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 15.10.2007 (Пн) 16:19

alibek
Это не самодельный интерфейс, это интерфейс, выпущенный MySQL AB, и являющийся частью СУБД MySQL.

Это более быстрый подход, чем использование навороченных абстракций.

Это наиболее родной для MySQL подход.

Отчасти именнно из-за существования этого интерфейса я остановился на MySQL и доволен им. Что-либо другое юзать не возникло желания.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.10.2007 (Пн) 16:25

Это одна из причин, почему MySQL является недо-СУБД.
Большинство крупных СУБД имеют стандартные провайдеры. Даже Oracle не посчитал для себя зазорным написать ADODB-провайдер. Хотя у него есть и клиентские библиотеки.
MySQL же выпустил только старую и глюковатую поделку для ODBC.
Разбираться в тонкостях и отличиях работы с MySQL только потому, что в MySQL AB свой подход считают более правильным, мне не хочется. По этой же причине я использую MySQL только когда другую СУБД использовать нельзя.
Последний раз редактировалось alibek 15.10.2007 (Пн) 16:30, всего редактировалось 1 раз.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 15.10.2007 (Пн) 16:29

СУБД не должна включать в себя кучу всякой дряни для поддержки всяческих мелкомягких технологий, чтобы считаться полноценной СУБД.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.10.2007 (Пн) 16:34

ODBC -- это международный стандарт. И в нем, между прочим, предусмотрена асинхронность и журналирование.
ADO и ADO.NET, несмотря на то, что разрабатывался MS, является распространенной технологией. Гораздо более авторитетной (и продуманной), нежели то, чем пытаются напичкать MySQL. Чем добавлять гибрид ADD и UPDATE, лучше предусмотрели бы более традиционные способы добавления пользовательских функций.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31

    TopList