StrReverse в DAO запросе к базе Access не пашет!

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

StrReverse в DAO запросе к базе Access не пашет!

Сообщение Pantalone » 12.01.2006 (Чт) 19:42

Что за нафиг такой?

Код: Выделить всё
strSQL = "SELECT StrReverse(Customer) as CustomerRev " _
& "From CustomerBook"


Выдает рунтайм еррор 3085: Неопределенная функция 'StrReverse' в выражении.
Без нее запрос работает.
Кстати почему текст ошибки на русском, VB6 английский.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 12.01.2006 (Чт) 19:56

Пример:
http://pantalone.nm.ru/StrRevError.rar
Причем в базе запрос работает.

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

Сообщение alibek » 12.01.2006 (Чт) 19:57

А с чего ты взял, что эта функция должна работать в SQL?
Lasciate ogni speranza, voi ch'entrate.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 12.01.2006 (Чт) 20:15

alibek
А почему не должна? В аксесе работает в запросе преспокойно.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 12.01.2006 (Чт) 22:09

Видно не судьба:
http://64.233.183.104/search?q=cache:Hc ... dset&hl=ru
Ни StrReverse ни InstRev не пашут в запросах если эти запросы запущены не в самом Access. Или я что-то не понял?

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

Сообщение alibek » 13.01.2006 (Пт) 8:48

Pantalone писал(а):alibek
А почему не должна? В аксесе работает в запросе преспокойно.

В Access работает. Так на то он и Access.
Lasciate ogni speranza, voi ch'entrate.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 13.01.2006 (Пт) 11:34

alibek
Instr и Len к примеру работают нормально.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 13.01.2006 (Пт) 12:04

Тогда задача такая:
Как заполучить имя последней папки"C:\Folder\Folder2\" не пользуясь функциями StrReverse и InStrRev? Т.е. доступны только Len Mid Left Right и другие. Сделать нужно одной строкой чтобы это был выяисляемый столбец запроса.

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

Сообщение alibek » 13.01.2006 (Пт) 12:06

Pantalone писал(а):alibek
Instr и Len к примеру работают нормально.

Потому что эти функции поддерживаются в DAO Jet-провайдером. Да и в ADO тоже.
А в Access ты можешь использовать в запросах почти любую функцию, хоть VBA, хоть пользовательскую.
Lasciate ogni speranza, voi ch'entrate.

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 13.01.2006 (Пт) 13:29

Спецификацию SQL почитай... SQL - это международный стандарт запросов к базам данных (почти стандарт ;) ). И в SQL VB-шным функциям по определению делать нечего. И вообще, объясни, какая настоятельная необходимость делать операции со строками именно в запросе? Почему бы их потом не обработать?
То, что для одних константа, для других только переменная...

VDeltsov
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 23
Зарегистрирован: 30.07.2005 (Сб) 14:42
Откуда: Moscow

Re:

Сообщение VDeltsov » 09.08.2009 (Вс) 19:43

Pantalone писал(а):Тогда задача такая:
Как заполучить имя последней папки"C:\Folder\Folder2\" не пользуясь функциями StrReverse и InStrRev? Т.е. доступны только Len Mid Left Right и другие. Сделать нужно одной строкой чтобы это был выяисляемый столбец запроса.


Меня тоже интересует, смог ли кто-нибудь написать аналог функции InStrRev, которую можно вставить во вьюшку MS ACCESS, и использовать эту вьюшку не в самом MS ACCESS, а из внешнего приложения на VB, используя обычный провайдер "Microsoft.Jet.OLEDB.4.0"?

PS: необходимость написать это прямо в запросе может быть разная:
- использование InStrRev для фильтра записей (в структурированном логе например).
- избежание повторения кода. Чтобы можно было использовать уже готовое поле из вьюшки, а не наклеивать строки в VB при каждом его использовании...
- отдельное поле в базе иметь тоже негуманно, т.к. таких запросов может быть много разных...

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: StrReverse в DAO запросе к базе Access не пашет!

Сообщение SLIM » 09.08.2009 (Вс) 22:24

VDeltsov писал(а):Меня тоже интересует, смог ли кто-нибудь написать аналог функции InStrRev, которую можно вставить во вьюшку MS ACCESS, и использовать эту вьюшку не в самом MS ACCESS, а из внешнего приложения на VB, используя обычный провайдер "Microsoft.Jet.OLEDB.4.0"?


Чушь какая-то.
Зачем кому-то должно быть нужно это кроме тебя и еще парочки таких как ты?
SQL - это стандарт, а стандарт не должен подстраиваться под кого-то, на то он и жестко-установленный стандарт. Тем не менее есть отдельные СУБД и синтаксисы SQL, которые содержат свои специальные ф-ии, например в T_SQL есть ф-я REVERSE, которая работает со строкой. Но у SQL Server полно того, чего нет вообще в стандарте SQL, поэтому не считается.

Что касается отцетированного. Что значит написать аналог? Для SQL? Ты хочешь вскрыть кишки Access, запихнуть в синтаксис SQL-я свою ф-ю? Даю зуб что не выйдет, а если и выйдет, то трудозатраты не стоят того.
VDeltsov писал(а):PS: необходимость написать это прямо в запросе может быть разная:
- использование InStrRev для фильтра записей (в структурированном логе например).
- избежание повторения кода. Чтобы можно было использовать уже готовое поле из вьюшки, а не наклеивать строки в VB при каждом его использовании...
- отдельное поле в базе иметь тоже негуманно, т.к. таких запросов может быть много разных...


Ты понимаешь что это как-то странно?
Что за стериотип такой, делать все это в SQL? Ну выбери все в RecordSet и обрабатывай так как тебе нужно. Причем тут SQL то? А если тебе понадобится например обрезать пять строк из набора записей, а остальные не обрезать, ты что, предлагаешь еще и if...then добавить (Люблю MS SQL за его case)?
Пишите жизнь на чистовик.....переписать не удастся.....

VDeltsov
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 23
Зарегистрирован: 30.07.2005 (Сб) 14:42
Откуда: Moscow

Re: StrReverse в DAO запросе к базе Access не пашет!

Сообщение VDeltsov » 09.08.2009 (Вс) 23:06

Как видишь, у меня, например, в VB есть модуль со всевозможными наработками для разных типов серверов, ибо приходится с разными поставщиками работать, а некоторые проекты должны быть адаптированы на все эти три типа сервера. И чтобы в каждом конкретном случае не заморачиваться, написана уйма таких общепринятых функций (тут лишь небольшая часть).

И вот функция sSqlInStr написана для всех случаев,
а sSqlInStrRev - только для ORACLE и MS SQL Server. И под ACCESS не работает.
Ну или нужна хотя бы функция типа reverse.

Поэтому предлагаю не тыкать меня в стандарт SQL.
Я за 7 лет работы уже давно понял, что хоть все SQL-языки стандартные, но некоторые из них более стандартны, чем другие.
Поэтому и приходится писать всевозможные обертки, чтобы не натыкаться каждый раз на одно и тоже.

Такая функция sSqlInStrRev мне на уровне SQL реально нужна была только 2 раза.
В первый раз обошелся только потому, что тогда была разовая операция update структурированного лога, и она реально нужна была только для ORACLE и MS SQL Server.
Но вот сейчас опять понадобилась в другом проекте. И в данном случае приходится из-за этого городить лишний бессмысленный VB-код.
Необходимость использования базы на ACCESS, а не на нормальной серверной СУБД, продиктована заказчиком по политическим соображениям.

Что за стериотип такой, делать все это в SQL? Ну выбери все в RecordSet и обрабатывай так как тебе нужно.

Так и приходится делать в каждом месте, где используется такие рассчитываемые поля, но к сожалению такое нужно не только при запросах типа Select. Но и при запросах типа update - тоже. Так что же теперь все в recordset вытаскивать, а потом обновлять в цикле???
Конечно, обойти можно все, что угодно. Все упирается только в трудоемкость и читаемость кода.

В общем функция такая реально иногда нужна (в инете многие спрашивают). Придумаете решение - пишите. Не придумаете - нечего и флуд разводить...

Код: Выделить всё
'Аналог функции IIf в Visual Basic
Public Function sIIf(sExpression, sTruePart, sFalsePart) As String
    Select Case modConnection.ServerType
        Case st_ORACLE
            sIIf = " (CASE WHEN (" & sExpression & ") THEN " & sTruePart & " ELSE " & sFalsePart & " END)"
        Case st_MSSQL
            sIIf = " (CASE WHEN (" & sExpression & ") THEN " & sTruePart & " ELSE " & sFalsePart & " END)"
        Case st_ACCESS
            sIIf = " IIF (" & sExpression & ", " & sTruePart & ", " & sFalsePart & ")"
    End Select
End Function

Public Property Get sSqlNow() As String
    Select Case modConnection.ServerType
        Case st_ORACLE
            sSqlNow = " SYSDATE "
        Case st_MSSQL
            sSqlNow = " GETDATE() "
        Case st_ACCESS
            sSqlNow = " NOW() "
    End Select
End Property

'Возвращает функцию UCase для разных серверов в виде строчки для SQL-запроса
Public Property Get sSqlUCase() As String
    Select Case modConnection.ServerType
    Case st_ORACLE
        sSqlUCase = " UPPER" ' Для ORACLE
    Case st_MSSQL
        sSqlUCase = " UPPER" ' Для MSSQL SERVER
    Case st_ACCESS
        sSqlUCase = " UCASE" ' Для ACCESS
    End Select
End Property

'Возвращает функцию Length для разных серверов в виде строчки для SQL-запроса
Public Function sSqlLength(sField As String, Optional fDataLength As Boolean) As String
    Select Case modConnection.ServerType
    Case st_ORACLE
        sSqlLength = " LENGTH(" & sField & ") " ' Для ORACLE
    Case st_MSSQL
        If fDataLength Then
            'Argument data type image is invalid for argument 1 of len function.
            sSqlLength = " DATALENGTH(" & sField & ") " ' Для MSSQL SERVER
        Else
            'Иначе не работает для sSqlLength("' - '")
            sSqlLength = " (LEN('A' + " & sField & " + 'A') - 2) " ' Для MSSQL SERVER
        End If
    Case st_ACCESS
        sSqlLength = " LEN(" & sField & ") " ' Для ACCESS
    End Select
End Function

'Возвращает функцию Substring для разных серверов в виде строчки для SQL-запроса
Public Property Get sSqlSubstring() As String
    Select Case modConnection.ServerType
    Case st_ORACLE
        sSqlSubstring = " SUBSTR" ' Для ORACLE
    Case st_MSSQL
        sSqlSubstring = " SUBSTRING" ' Для MSSQL SERVER
    Case st_ACCESS
        sSqlSubstring = " MID" ' Для ACCESS
    End Select
End Property

'Возвращает функцию InStr для разных серверов в виде строчки для SQL-запроса
Public Function sSqlInStr(sBigString As String, sFindString As String, Optional iStartLocation As String = "1") As String
    Select Case modConnection.ServerType
    Case st_ORACLE
        sSqlInStr = " INSTR(" & sBigString & ", " & sFindString & ", " & iStartLocation & ") " ' Для ORACLE
    Case st_MSSQL
        sSqlInStr = " CHARINDEX(" & sFindString & ", " & sBigString & ", " & iStartLocation & ") " ' Для MSSQL SERVER
    Case st_ACCESS
        sSqlInStr = " INSTR(" & iStartLocation & ", " & sBigString & ", " & sFindString & ") " ' Для ACCESS
    End Select
End Function

'Возвращает функцию InStrRev для разных серверов в виде строчки для SQL-запроса
Public Function sSqlInStrRev(sBigString As String, sFindString As String, Optional iStartLocationFromBegin As String = "-1") As String
    Select Case modConnection.ServerType
    Case st_ORACLE
        sSqlInStrRev = " INSTR(" & sBigString & ", " & sFindString & ", " & sIIf(iStartLocationFromBegin & " = -1", "-1", "(" & iStartLocationFromBegin & ") - " & sSqlLength(sBigString)) & ") "    ' Для ORACLE
    Case st_MSSQL
        sSqlInStrRev = sIIf(sSqlInStr("reverse(" & sBigString & ")", sFindString, sIIf(iStartLocationFromBegin & " = -1", "1", sSqlLength(sBigString) & " - (" & iStartLocationFromBegin & ") + 1")) & "=0" _
                    , 0 _
                    , sSqlLength(sBigString) & " - " & sSqlInStr("reverse(" & sBigString & ")", sFindString, sIIf(iStartLocationFromBegin & " = -1", "1", sSqlLength(sBigString) & " - (" & iStartLocationFromBegin & ") + 1")) & " + 2 - " & sSqlLength(sFindString))
    Case st_ACCESS
        'В ACCESS нет ни INSTRREV, ни reverse, так что эквивалент не удалось сотавить
        Err.Raise 999, , "Функция InStrRev не поддерживается в MS ACCESS"
    End Select
End Function

'Аналог функции IsNumeric в Visual Basic
'Но для ORACLE работает просто как IsInteger!
Public Function sIsNumeric(sExpression) As String
    Select Case modConnection.ServerType
        Case st_ORACLE
            sIsNumeric = sIIf(" translate (" & sExpression & ", 'x0123456789', 'x') is null ", "1", "0")
        Case st_MSSQL
            sIsNumeric = " IsNumeric (" & sExpression & ")"
        Case st_ACCESS
            sIsNumeric = " IsNumeric (" & sExpression & ")"
    End Select
End Function

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: StrReverse в DAO запросе к базе Access не пашет!

Сообщение SLIM » 10.08.2009 (Пн) 0:12

Нет слов
Пишите жизнь на чистовик.....переписать не удастся.....

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

Re: Re:

Сообщение alibek » 10.08.2009 (Пн) 7:53

VDeltsov писал(а):Меня тоже интересует, смог ли кто-нибудь написать аналог функции InStrRev, которую можно вставить во вьюшку MS ACCESS, и использовать эту вьюшку не в самом MS ACCESS, а из внешнего приложения на VB, используя обычный провайдер "Microsoft.Jet.OLEDB.4.0"?

Напиши свой провайдер и помещяй в него любые функции.
Lasciate ogni speranza, voi ch'entrate.

VDeltsov
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 23
Зарегистрирован: 30.07.2005 (Сб) 14:42
Откуда: Moscow

Re: Re:

Сообщение VDeltsov » 10.08.2009 (Пн) 8:17

alibek писал(а):
VDeltsov писал(а):Меня тоже интересует, смог ли кто-нибудь написать аналог функции InStrRev, которую можно вставить во вьюшку MS ACCESS, и использовать эту вьюшку не в самом MS ACCESS, а из внешнего приложения на VB, используя обычный провайдер "Microsoft.Jet.OLEDB.4.0"?

Напиши свой провайдер и помещяй в него любые функции.


Еще полезные советы будут? Интересует мнение тех, кто это сделал, а не тех, кто такое не сделал.
Вы для начала в первый класс сходите, там учат, что "ча", "ща" надо писать с буквой "а"...

Ты сам свой адекватный провайдер в состоянии написать (даже если тебе это оплатят)? Лично я - нет. И ничуть этого не стесняюсь..

Свой провайдер не катит, т.к. это из области фантастики с точки зрения реализации, работоспособности, отказоустойчивости и трудоемкости.
Плюс лишний геморрой при инсталляции. Большинство моих приложений работают на любом компе, с любым офисом, с любыми NT-правами (опять же формальные согласования с IT-службами, службами информационной безопасности в каждой серьезной корпорации могут длится месяцами). А свой провайдер - это лишний геморрой для заказчика.

PS: пожалуйста, не флудите без толку.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Re:

Сообщение Денис » 10.08.2009 (Пн) 8:28

VDeltsov писал(а):Ты сам свой адекватный провайдер в состоянии написать (даже если тебе это оплатят)?

Ты очень удивишься... :lol:
С нетерпением жду ответа Алибека.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

HandKot
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 28.06.2006 (Ср) 13:34
Откуда: Sergiev Posad

Re: StrReverse в DAO запросе к базе Access не пашет!

Сообщение HandKot » 10.08.2009 (Пн) 12:53

можно запросы со встроенными ф-циями организовывать в виде сохраненных запросов в самом Акцес и в этом случае их можно использовать как ХП
плюсы:
- всё хранится в одном месте
- не надо заботится о диалекте: создал в Акцесс - значит работает
I Have Nine Lives You Have One Only
THINK!

VDeltsov
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 23
Зарегистрирован: 30.07.2005 (Сб) 14:42
Откуда: Moscow

Re: StrReverse в DAO запросе к базе Access не пашет!

Сообщение VDeltsov » 10.08.2009 (Пн) 13:24

HandKot писал(а):можно запросы со встроенными ф-циями организовывать в виде сохраненных запросов в самом Акцес и в этом случае их можно использовать как ХП
плюсы:
- всё хранится в одном месте
- не надо заботится о диалекте: создал в Акцесс - значит работает


Вот! Именно об этом и идет речь.
Есть часто используемая вьюшка, которая уже сохранена в ACCESS (типа ХП). И в самом ACCESS она прекрасно работает.
А если эту же вьюшку использовать не через ACCESS, а через Jet-провайдер, то InStrRev уже не работает.
Пишет: Undefined function 'InStrRev' in expression.

Дело в том, что когда используешь свою вьюшку прямо в ACCESS, то процесс принадлежит самому ACCESSу.
У самого ACCESSа возможностей полно. В том числе он может использовать прямо в SQL-запросе все функции VB.
А так же все Ваши собственные публичные функции, написанные в модуле.

Но как только Вы используете эту же вьюшку через Jet-провайдер, то на Вашем компьютере может вообще не быть ACCESSа.
ACCESS теперь не используется вообще. Используется просто mdb-файл, как обычный текстовый файл.
Управление компьютером производится провайдером (от имени процесса Вашей программы).
А этот Jet-провайдер, во-первых , не знает и не должен знать всех VB-шных функций.
А, во-вторых, он не умеет использовать Ваши собственные публичные функции, написанные в модуле.

Может кто знает, где можно увидеть список всех функций, которые можно использовать с Jet-провайдером?
По-идее, глядя на него можно будет сразу сказать, возможно такое написать прямо в SQL-запросе или нет.
А то без этого списка ищешь черную кошку в темной комнате... :(

PS: вот тут пишут, что скорее всего провайдером поддерживаются только те функции, которые были до VB6,
то есть кроме: Replace; StrReverse; InStrRev; Split; Join; Round; MonthName; WeekdayName и еще несколько других.
http://www.sql.ru/forum/actualthread.aspx?tid=678037

PPS: Вот здесь интересный вариант реализации. Прямо скажет нестандартный.
Но производительность, скорее всего, просадится уже на нескольких тысячах записей, если поля тоже длиной по 1000 знаков и больше.
Использовать такое вряд ли буду, ибо производительность в моем текущем проекте просаживать нельзя (уж лучше обойдусь лишним VB-кодом, чем таким запросом).
Хотя на маленьких табличках вполне возможно подойдет...
http://www.sql.ru/forum/actualthread.as ... =2#7280425

Код: Выделить всё
SELECT Q.ID, Mid(T.ID,1,Q.MaxN-1) AS ParentID
FROM T,
   (SELECT T.ID, Max(N) AS MaxN
    FROM T, numb
    WHERE IIf(InStr(T.ID,".")>0,Mid(T.ID,N,1) Like ".",True) AND Len(T.ID)>=N-1
    GROUP BY T.ID
   ) AS Q
WHERE T.ID = Q.ID;

Тут Ваша таблица - T, с полем ID, где хранятся данные типа "ББ 5.3.2"
также необходима таблица numb (с одним уникальным полем N) - она содержит натуральные числа от 1 до как минимум {максим. длина поля ID +1}, больше тоже можно.

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

Re: StrReverse в DAO запросе к базе Access не пашет!

Сообщение alibek » 10.08.2009 (Пн) 16:31

HandKot писал(а):можно запросы со встроенными ф-циями организовывать в виде сохраненных запросов в самом Акцес и в этом случае их можно использовать как ХП
плюсы:
- всё хранится в одном месте
- не надо заботится о диалекте: создал в Акцесс - значит работает

Нельзя. Они будут работать только если база открыта из Access.
Lasciate ogni speranza, voi ch'entrate.

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

Re: Re:

Сообщение alibek » 10.08.2009 (Пн) 16:36

VDeltsov писал(а):Свой провайдер не катит, т.к. это из области фантастики с точки зрения реализации, работоспособности, отказоустойчивости и трудоемкости.

Что тут фантастического? В MSDN есть готовый простенький OLEDB-провайдер. Который, правда, почти ничего не умеет делать, но это от него и не требуется.
А то ты хочешь чего-то странного — с одной стороны ты хочешь использовать функционал готового продукта (провайдера), с другой стороны его функционал тебя не устраивает и ты хочешь в него встроить какие-то свои костыли, причем нештатным образом.
Не устраивает провайдер Jet, попробуй поискать сторонний провайдер, который бы предоставлял возможность использовать пользовательские функции (через callback или иным способом). Не факт, правда, что ты найдешь такой, устраивающий тебя качеством и ценой, но хотя бы попытайся.
Lasciate ogni speranza, voi ch'entrate.

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

Re: StrReverse в DAO запросе к базе Access не пашет!

Сообщение alibek » 10.08.2009 (Пн) 16:41

VDeltsov писал(а):Может кто знает, где можно увидеть список всех функций, которые можно использовать с Jet-провайдером?

Как ни странно, но в справочной системе.
Lasciate ogni speranza, voi ch'entrate.


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

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

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

    TopList