powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка преобразования типов
7 сообщений из 7, страница 1 из 1
Ошибка преобразования типов
    #39263116
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, уважаемые форумчане!

Есть проект долгое время крутился на ХР и 2000 винде. Но время течет сервак поменял на 2008R2. и посыпались ошибки (на прикрепленном скриншоте). Часть ошибок устраняется дополнительным преобразованием например:

Был код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
   Dim dat As Variant    

     dat = "'" & (Format(Date, "yyyy-mm-dd hh:mm:ss")) & "'"
    
    rst.Open "SELECT count(dbo.val_op_cont.op_id) as N " & _
             "FROM dbo.val_op_cont " & _
             "WHERE dbo.val_op_cont.op_sysdate<" & dat & " ", _
    Cn, adOpenStatic, adLockReadOnly



Работал, себе, работал. Теперь он работает только в таком виде:

Код: vbnet
1.
2.
3.
4.
5.
6.
    dat = "'" & (Format(Date, "yyyy-mm-dd hh:mm:ss")) & "'"
    
    rst.Open "SELECT count(dbo.val_op_cont.op_id) as N " & _
             "FROM dbo.val_op_cont " & _
             "WHERE dbo.val_op_cont.op_sysdate<" & Cdate(dat) & " ", _
    Cn, adOpenStatic, adLockReadOnly



Правда такое преобразование тоже не всегда проходит ровно и все равно идет ошибка.

Но тотальность этой ошибки на водит на мысль, что может дело в используемых библиотеках или в типе переменной Variant.

Подскажите где искать? что поменялось.
...
Рейтинг: 0 / 0
Ошибка преобразования типов
    #39263120
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вывести мессэдж боксом
"SELECT count(dbo.val_op_cont.op_id) as N " & _
"FROM dbo.val_op_cont " & _
"WHERE dbo.val_op_cont.op_sysdate<" & Cdate(dat) & " "

Скормить серверу в среде, посмотреть на что ругнется.

Ораклу бы явно не понравился формат даты, или отсутствие кавычек.

или переходить на параметризованные запросы и биндить параметры, это правильнее.
...
Рейтинг: 0 / 0
Ошибка преобразования типов
    #39263122
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще, минуты при форматировании обозначаются как "n", а "m" - это месяц.

Была какая-то фишка, что mm после hh расцениваются как минуты, но может в данном случае не работает?
...
Рейтинг: 0 / 0
Ошибка преобразования типов
    #39263126
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А работа CDate зависит от региональных настроек на локальном компе. Дальнейшее неявное преобразование в строку из даты - тоже. Так что ни в коем случае нельзя так делать, никаких неявных преобразований.

Все остальное сказал Vladimir Baskakov
...
Рейтинг: 0 / 0
Ошибка преобразования типов
    #39263127
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
 Dim dat As String

не балуйтесь неявными преобразованиями, не ведет это ни к чему хорошему, повторяю!
...
Рейтинг: 0 / 0
Ошибка преобразования типов
    #39263130
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Спасибо. Буду пробовать.
...
Рейтинг: 0 / 0
Ошибка преобразования типов
    #39263581
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_men,

Спасибо помогло, дело действительно было в Variant.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка преобразования типов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]