powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Clipper 3.0
7 сообщений из 7, страница 1 из 1
Clipper 3.0
    #33742931
ElenaVE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо сконвертировать базу в MSSQL. Есть dbf, в котором текстовое поле длинное, намного больше 255. Стандартные драйвера спотыкаются на этих строках. Может есть у кого мысли какие? Заранее спасибо.
...
Рейтинг: 0 / 0
Clipper 3.0
    #33743591
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во первых, "Clipper 3.0" в природе не существует. Есть Clipper Autumn'86, Clipper Summer'87, Clipper 5.0 и несколько под-версий пятерки. Потом он умер....

А чтоб работать с длинными полями... Ну самое надеждное это собственная маленькая программка перегоняющая dbf в csv или напрямую в ODBC.
В принципе вам может помочь плагин для FAR'а ViewDBF. Он умеет работать с длинными текстовыми полями.
...
Рейтинг: 0 / 0
Clipper 3.0
    #33743743
Фотография savosin_sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ElenaVE:
с помощью ADODB можно считать первые 244 символа, а затем их вставить в sqlserver отдельным соединением.. или нужно умудриться считать ВСЮ строку, даже более 244 символов?
вот пример на VBA:
Код: 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.
33.
34.
35.
36.
Sub s1()
 Dim tdoc As Document
 Dim i, j As Integer
 Dim str1 As String
'база данных, требуется подключить microsoft activex data objects
 Dim cntstr As String
 Dim cnt As ADODB.Connection
 Dim cmd As New ADODB.Command
 Dim rst As New ADODB.Recordset

 'подключение к каталогу
 cntstr = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=c:\work;" & _
  "Mode=Share Deny None;Extended Properties=""dbase 5.0;"";Jet OLEDB:System database="""";" & _
  "Jet OLEDB:Engine Type=16;Jet OLEDB:Database Locking Mode=0;"

 
 Set cnt = New ADODB.Connection
 cnt.Open cntstr
 'открытие созданной таблицы
 rst.Open "tbl7", cnt, adOpenKeyset, adLockOptimistic

 Set tdoc = ThisDocument
 Set par = tdoc.Paragraphs(1)
  
  'сохранение выбранных данных в таблицу
  rst.MoveFirst
  While Not rst.EOF
    If Not IsNull(rst.Fields("family").Value) Then
        str1 = rst.Fields("family").Value
    Else
        str1 = "<null>"
    End If
    rst.MoveNext
  Wend
  
 rst.Close
End Sub

в таблице c:\work\tbl7.dbf есть поле символьное "family" длиной 500 символов
...
Рейтинг: 0 / 0
Clipper 3.0
    #33743746
Фотография savosin_sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl Потом он умер....
и воскрес под именем harbour
...
Рейтинг: 0 / 0
Clipper 3.0
    #33743755
Фотография savosin_sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sqlserver через sp_addlinkedserver тоже только первые 244 символа "заглатывает"
...
Рейтинг: 0 / 0
Clipper 3.0
    #33743782
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
savosin_sergey White Owl Потом он умер....
и воскрес под именем harbourНее... это нельзя называть воскрес.
Впрочем, можно действительно взять harbour, и сделать выгрузку dbf->csv на нем. Это конечно если оригинального Клиппера нету и религия запрещает пользоваться другими языками :)
А через ODBC/OLEDB длинные текстовые поля как мне кажется прочитать не получится. Во всяком случае я не слышал про драйвера которые это умеют.
...
Рейтинг: 0 / 0
Clipper 3.0
    #33755814
GreenStar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используйте ADS OLEDB или ODBC (Advantage Database Server).
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Clipper 3.0
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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