powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / И снова про DBF...
6 сообщений из 6, страница 1 из 1
И снова про DBF...
    #35314949
nat-z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
У меня проблема – в ActiveReport через ADO подключить dbf-файл.
Просто подключение типа: Source = “select * from gwprov” проходит OK.
Но как только ставлю что-то вроде:
Source = “select * from gwprov order by kpd” получаю при выполнении:
Error 5000 : Error in processing report.
[ Extended Info:[Microsoft][Драйвер ODBC dBASE] Выбранная последовательность сортировки не поддерживается операционной системой.]
То же самое и при просто выполнении запроса в ADO (без ActiveReport). Посмотрела по форуму – куча таких вопросов и ни одного четкого ответа не нашла!!!
Что здесь можно сделать (уж очень мне сортировка нужна!!)
...
Рейтинг: 0 / 0
И снова про DBF...
    #35315225
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Варианта с полным устранением причины собственно возникновения ошибки, к сожалению не припомню (да и влом разбираться было, так как редко использую DBF-ки), но могу предложить варианты решения:

1. С ODBC-шным драйвером (как у Вас) открываете Recordset, и по ошибке выполняете Resume - он откроется, после чего его можно передать репорту.

2. Можно использовать OLEDB провайдера для FoxPro - тогда такой ошибки не возникнет. Но, его возможно, придется дополнительно ставить клиентам (точно за давностью не помню).
...
Рейтинг: 0 / 0
И снова про DBF...
    #35315399
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё вариант
Мне советовали использовать другой драйвер. (может в Вашем случае поможет)
Сейчас не помню о результатах эксперимента.

Вышел из положения тем, что с помощью DAO создал временный файл tmp.mdb
к нему присоединил файл DBF, и уже, «нормально» с ней работал.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim QD As DAO.QueryDef
Dim TB As DAO.TableDef

Dim basa As String: basa = "имя_базы" ' без расширения
Dim sSQL As String: sSQL = "SELECT * From  " & basa & " WHERE POLE = 'Деталь' ORDER BY OIZ"

'присоединю базы dbf к tmp.mdb
Set DB = DBEngine.Workspaces( 0 ).CreateDatabase(App.Path & "\tmp", dbLangCyrillic)

Set TB = DB.CreateTableDef(basa)
TB.Connect = "dBase III;DataBase=" & App.Path
TB.SourceTableName = basa
DB.TableDefs.Append TB
Set TB = Nothing

DB.Close:   Set DB = Nothing

Set DB = OpenDatabase(App.Path & "\tmp", True)
Set RS = DB.OpenRecordset(sSQL, dbOpenSnapshot)

    If Not RS.EOF Then
        RS.MoveLast
        MsgBox RS.RecordCount
    End If


RS.Close
Set RS = Nothing
Set QD = Nothing
DB.Close
Set DB = Nothing
...
Рейтинг: 0 / 0
И снова про DBF...
    #35316372
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, простейший пример для ActiveReports:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub ActiveReport_ReportStart()
    Dim cn As New ADODB.Connection, r As New ADODB.Recordset
    
    On Error GoTo Err_

    cn.CursorLocation = adUseClient
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=dBASE IV;Data Source=""" & App.Path & """"
    r.Open "SELECT * FROM TMP5 ORDER BY MARKA", cn, adOpenStatic, adLockReadOnly
    Set adr.Recordset = r
    Exit Sub
    
Err_:
    If Not cn Is Nothing Then
        If cn.Errors.Count Then
            If cn.Errors( 0 ).Number = - 2147467259  And cn.Errors( 0 ).NativeError = - 329323426  Then Resume
        End If
    End If
    
    MsgBox Err.Description, vbCritical
End Sub

В примере adr - ADO Data Control от ActiveReports...
...
Рейтинг: 0 / 0
И снова про DBF...
    #35318540
nat-z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем, буду думать, но уж больно все тоскливо - мне как раз только с dbf и приходится работать. И надо именно VB...
...
Рейтинг: 0 / 0
И снова про DBF...
    #35318541
nat-z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.
А кто-то может подсказать переведенную документацию по ActiveReports?
А то у меня процесс перевода затягивается...
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / И снова про DBF...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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