Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / И снова про DBF... / 6 сообщений из 6, страница 1 из 1
15.05.2008, 16:14
    #35314949
nat-z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова про DBF...
Добрый день!
У меня проблема – в 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
15.05.2008, 17:35
    #35315225
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова про DBF...
Варианта с полным устранением причины собственно возникновения ошибки, к сожалению не припомню (да и влом разбираться было, так как редко использую DBF-ки), но могу предложить варианты решения:

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

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

Вышел из положения тем, что с помощью 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
16.05.2008, 11:13
    #35316372
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова про DBF...
В общем, простейший пример для 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
17.05.2008, 03:57
    #35318540
nat-z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова про DBF...
Спасибо всем, буду думать, но уж больно все тоскливо - мне как раз только с dbf и приходится работать. И надо именно VB...
...
Рейтинг: 0 / 0
17.05.2008, 04:00
    #35318541
nat-z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова про DBF...
P.S.
А кто-то может подсказать переведенную документацию по ActiveReports?
А то у меня процесс перевода затягивается...
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / И снова про DBF... / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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