Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
VBA: как запретить ODBC проверять SQL?
|
|||
|---|---|---|---|
|
#18+
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. Как-то бы просто передать запрос Базе. Кто-нибудь с этим работал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2003, 08:30 |
|
||
|
VBA: как запретить ODBC проверять SQL?
|
|||
|---|---|---|---|
|
#18+
where data=Format (Date_Date, "yyyymmdd") Только еще надо разобраться к какой БД ты шлешь запрос: от этого зависит # или ' использовать для передачи даты и символ конкатенции & или + ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2003, 09:21 |
|
||
|
VBA: как запретить ODBC проверять SQL?
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ. Можно ли поподробнее? У меня нет переменной Date_Date. Format() строку создает, а у data тип дата. Получается несоответствие, которое не нравится ODBC. Запрос шлю к Oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2003, 10:16 |
|
||
|
VBA: как запретить ODBC проверять SQL?
|
|||
|---|---|---|---|
|
#18+
Ура, получилось! Надо было "where date = #09-01-2003#" написать. Viktor, ты бы мог сразу понятнее написать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2003, 10:28 |
|
||
|
VBA: как запретить ODBC проверять SQL?
|
|||
|---|---|---|---|
|
#18+
Более строго: CONVERT (data_type[(length)], expression [, style]) (см. CAST and CONVERT (T-SQL). "SQL server books online" == :\MSSQL7\Books\sqlbol.chm) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2003, 10:55 |
|
||
|
VBA: как запретить ODBC проверять SQL?
|
|||
|---|---|---|---|
|
#18+
>Viktor, ты бы мог сразу понятнее написать Я бы мог - если бы ты сразу указал c базу, и как с ней работаешь (Дао, адо). У меня телепатические функции в тяпницу не работают :) 2Processor У него Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2003, 12:11 |
|
||
|
VBA: как запретить ODBC проверять SQL?
|
|||
|---|---|---|---|
|
#18+
To Victor: У Oracle'а - SQL. (формально ты прав: не доглядел). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2003, 12:29 |
|
||
|
VBA: как запретить ODBC проверять SQL?
|
|||
|---|---|---|---|
|
#18+
2Processor >(формально ты прав: не доглядел). Не понятно в чем я формлаьно прав ? В том что там Оракл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2003, 14:23 |
|
||
|
VBA: как запретить ODBC проверять SQL?
|
|||
|---|---|---|---|
|
#18+
У меня новая проблема. Теперь не знаю как связать два разных поля. "where rc.customer_id = gca.value". Первое типа number, второе - char. SQL сам все преобразует, а ODBC ругается. Если делаю to_number(gca.value), ODBC не понимает. М.б. все-таки у ODBC есть режим, чтобы он не проверял запрос, а прямо базе передавал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2003, 15:22 |
|
||
|
VBA: как запретить ODBC проверять SQL?
|
|||
|---|---|---|---|
|
#18+
"where rc.customer_id = gca.value" Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2003, 15:51 |
|
||
|
VBA: как запретить ODBC проверять SQL?
|
|||
|---|---|---|---|
|
#18+
Processor, не так просто. gca.value - это поле БД, VBA о нем не знает. Короче, я кое-что нашел в MSDN. По теории надо "where rc.customer_id = { fn CONVERT( gca.value, SQL_INTEGER) }", и это работает, если грузить данные запросом, но если делать OpenRecordset(), то выдает ошибку "неверно сформированный код GUID в выражении запроса". Что-это еще за хрень? Забыл раньше написать, что работаю через DAO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2003, 09:45 |
|
||
|
VBA: как запретить ODBC проверять SQL?
|
|||
|---|---|---|---|
|
#18+
А еще можешь ставить dbSQLPassThrough после dbOpenSnapShot и ODBC будет пропускать SQL полностью, оставляя его обработку полностью на совести БД. Типа Set rs = db.OpenRecordset(Select, dbOpenSnapshot,dbSQLPassThrough) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 13:33 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32331107&tid=2170259]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 365ms |

| 0 / 0 |
