Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Пользовательские функции в SQL запросе на VB
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Написал следующий код: Set cnn = New ADODB.Connection Dim rs As New ADODB.Recordset Dim cmd As New ADODB.Command strCnn = "DRIVER={Microsoft Visual Foxpro Driver}; UID=; Deleted=Yes; Null=Yes; Collate=Machine; BackkGroundFetch=Yes; Exclusive=No; SourceType=DBF; SourceDB=D:\DBF" cnn.Open strCnn Set cmd.ActiveConnection = cnn strSql = "SELECT splt1(nm_frm) as name1 FROM tex" rs.Open strSql, cnn, adOpenKeyset, 1 Почему-то выдается сообщение, что OBDC не поддерживает требуемый запрос, а именно из-за пользовательской функции splt1, который описан как public. Если использовать встроенные функции (Left, Mid, ...), то проблем нет. Почему так происходит, что тут не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 11:47 |
|
||
|
Пользовательские функции в SQL запросе на VB
|
|||
|---|---|---|---|
|
#18+
Ну правильно ,ты подсовываешь вместо поля имя функции. Так нельзя вызывать функцию (из кавычек)! Вызывай по другому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 14:51 |
|
||
|
Пользовательские функции в SQL запросе на VB
|
|||
|---|---|---|---|
|
#18+
1) А как именно? 2) А почему, если использовать встроенные функции - все в порядке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 15:56 |
|
||
|
Пользовательские функции в SQL запросе на VB
|
|||
|---|---|---|---|
|
#18+
Потому-что, встроенные функции, они и на СУБД встроенные. Вызывая функцию в запросе, ты требуешь ее исполнния на стороне СУБД. Вопрос: откуда СУБД знает, про функции на клиенте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 10:04 |
|
||
|
Пользовательские функции в SQL запросе на VB
|
|||
|---|---|---|---|
|
#18+
Меня как раз и интересует, каким образом можно заставить сервер понимать пользовательские функции. Т.е. объявить где-то, зарегистрировать чего-то и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 11:33 |
|
||
|
Пользовательские функции в SQL запросе на VB
|
|||
|---|---|---|---|
|
#18+
1. Какая СУБД используется? 2. Надо реализовать пользовательские функции на стороне СУБД (если это конечно возможно) - В SQL Server это делается элементарно - В Access вам придется реализовывать свои функции в модуле базы, к которой обращаетесь (с учетом возможностей ее версии VBA и синтаксиса) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 11:49 |
|
||
|
Пользовательские функции в SQL запросе на VB
|
|||
|---|---|---|---|
|
#18+
Кстати, про Access не уверен, сам не пробовал Но по логике, должно сработать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 11:51 |
|
||
|
Пользовательские функции в SQL запросе на VB
|
|||
|---|---|---|---|
|
#18+
Кстати, про Access не уверен, сам не пробовал Но по логике, должно сработать :) не должно только если исполнять запрос из самого аксеса, и пользовательская функция описана именно в той базе, в которой выполняетя запрос (а не в той, где лежат данные) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 12:53 |
|
||
|
Пользовательские функции в SQL запросе на VB
|
|||
|---|---|---|---|
|
#18+
Кстати, про Access не уверен, сам не пробовал Но по логике, должно сработать :) не будет. даже если в Access создать QueryDef с использованием пользовательской функции, описанной в самом Access - из Access этот запрос будет открываться, извне - не будет. только если исполнять запрос из самого аксеса, отсюда следует, что если запустить запрос не через Ado или DAO, а работая с Access через OLE Automation, то в таком случае все должно работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 13:17 |
|
||
|
Пользовательские функции в SQL запросе на VB
|
|||
|---|---|---|---|
|
#18+
Тогда, как вариант: - написать запросы с параметрами в базе с данными (там же и свои функции) - а с клиента не генерировать SQL код, а запускать запрос с параметрами (по-моему это делается, примерно, как вызов ХП с MSSQL) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 13:18 |
|
||
|
Пользовательские функции в SQL запросе на VB
|
|||
|---|---|---|---|
|
#18+
Неужели никто не сталкивался с такой ситуацией? Есть в соседнем отделе БД - на DOSовской FoxPro2.6, плоская, старая, но работающая. Хочу, используя VB, получить возможность формирования нужных мне отчетов (которые немножко отличаются от ихних отчетов), при этом не трогая саму базу и не мешая их работе. Изменения при формировании отчетов небольшие, но если данные сначала считать, а потом обрабатывать - уходит много времени. Думал просто с помощью SQL-запроса сразу сформировать базу с необходимыми изменениями (это возможно), но столкнулся с неприятием пользовательской функции. Как видите, отдельного SQL-сервера нет, хранимых процедур - тоже. Можно конечно запустить SQL-запрос сначала на FoxPro или на ACCESS (предварительно импортировав базу) - там действительно проблем нет, но хотелось бы сделать все на VB и динамически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 13:57 |
|
||
|
Пользовательские функции в SQL запросе на VB
|
|||
|---|---|---|---|
|
#18+
2paparome: ну не будет так работать! написал-же!!! 2Guest: Вы сами себе создали условия (VB+динамика+пользовательские функции) при которых для Вас выход один: прилинковать ваши фокспрошные таблицы в файл Acces, написать в этом файле Access нужные пользовательские функции, потом из VB работать с этим файлом через Access OLE Automation. Какие проблемы? Во всем этом проще отказаться либо от VB либо от пользовательских функций в теле SQL-запроса. Второй вариант на мой взгляд перспективнее и правильнее. P.S. Скачать данные в отдельное место и при этом преобразовать их к удобному для анализа виду - вполне нормальная практика, и по этому пути идет мир(OLAP и OLTP) - каждому свое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 15:48 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32473293&tid=2169779]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 396ms |

| 0 / 0 |
