Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA: как запретить ODBC проверять SQL? / 12 сообщений из 12, страница 1 из 1
21.11.2003, 08:30
    #32330914
Builder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запретить ODBC проверять SQL?
Dim Select As String
...
db = OpenDatabase()
Set rs = db.OpenRecordset(Select, dbOpenSnapshot)
...
Если в Select есть "where data = '1.09.2003'", то ODBC ругается на несоответствие типов, т.к. поле data типа дата сравнивается со строкой. Если пишу "where data = to_date('1.09.2003', 'dd.mm.yyyy')", то не понимает SQL-функцию to_date. Как-то бы просто передать запрос Базе. Кто-нибудь с этим работал?
...
Рейтинг: 0 / 0
21.11.2003, 09:21
    #32330955
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запретить ODBC проверять SQL?
where data=Format (Date_Date, "yyyymmdd")
Только еще надо разобраться к какой БД ты шлешь запрос: от этого зависит # или ' использовать для передачи даты и символ конкатенции & или +
...
Рейтинг: 0 / 0
21.11.2003, 10:16
    #32331054
Builder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запретить ODBC проверять SQL?
Спасибо за ответ. Можно ли поподробнее? У меня нет переменной Date_Date. Format() строку создает, а у data тип дата. Получается несоответствие, которое не нравится ODBC. Запрос шлю к Oracle.
...
Рейтинг: 0 / 0
21.11.2003, 10:28
    #32331073
Builder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запретить ODBC проверять SQL?
Ура, получилось! Надо было "where date = #09-01-2003#" написать. Viktor, ты бы мог сразу понятнее написать.
...
Рейтинг: 0 / 0
21.11.2003, 10:55
    #32331107
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запретить ODBC проверять SQL?
Более строго: CONVERT (data_type[(length)], expression [, style])
(см. CAST and CONVERT (T-SQL). "SQL server books online" == :\MSSQL7\Books\sqlbol.chm)
...
Рейтинг: 0 / 0
21.11.2003, 12:11
    #32331230
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запретить ODBC проверять SQL?
>Viktor, ты бы мог сразу понятнее написать

Я бы мог - если бы ты сразу указал c базу, и как с ней работаешь (Дао, адо).
У меня телепатические функции в тяпницу не работают :)

2Processor
У него Oracle
...
Рейтинг: 0 / 0
21.11.2003, 12:29
    #32331266
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запретить ODBC проверять SQL?
To Victor:
У Oracle'а - SQL.
(формально ты прав: не доглядел).
...
Рейтинг: 0 / 0
21.11.2003, 14:23
    #32331492
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запретить ODBC проверять SQL?
2Processor
>(формально ты прав: не доглядел).

Не понятно в чем я формлаьно прав ? В том что там Оракл?
...
Рейтинг: 0 / 0
21.11.2003, 15:22
    #32331611
Builder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запретить ODBC проверять SQL?
У меня новая проблема. Теперь не знаю как связать два разных поля. "where rc.customer_id = gca.value". Первое типа number, второе - char. SQL сам все преобразует, а ODBC ругается. Если делаю to_number(gca.value), ODBC не понимает. М.б. все-таки у ODBC есть режим, чтобы он не проверял запрос, а прямо базе передавал?
...
Рейтинг: 0 / 0
23.11.2003, 15:51
    #32332381
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запретить ODBC проверять SQL?
"where rc.customer_id = gca.value"
Код: plaintext
 "where rc.customer_id ="  & CLng(gca.value)
...
Рейтинг: 0 / 0
24.11.2003, 09:45
    #32332579
Builder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запретить ODBC проверять SQL?
Processor, не так просто. gca.value - это поле БД, VBA о нем не знает. Короче, я кое-что нашел в MSDN. По теории надо "where rc.customer_id = { fn CONVERT( gca.value, SQL_INTEGER) }", и это работает, если грузить данные запросом, но если делать OpenRecordset(), то выдает ошибку "неверно сформированный код GUID в выражении запроса". Что-это еще за хрень?
Забыл раньше написать, что работаю через DAO.
...
Рейтинг: 0 / 0
13.01.2004, 13:33
    #32374327
Yuriy Goodz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запретить ODBC проверять SQL?
А еще можешь ставить dbSQLPassThrough после dbOpenSnapShot и ODBC будет пропускать SQL полностью, оставляя его обработку полностью на совести БД.

Типа
Set rs = db.OpenRecordset(Select, dbOpenSnapshot,dbSQLPassThrough)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA: как запретить ODBC проверять SQL? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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