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

А чтоб работать с длинными полями... Ну самое надеждное это собственная маленькая программка перегоняющая dbf в csv или напрямую в ODBC.
В принципе вам может помочь плагин для FAR'а ViewDBF. Он умеет работать с длинными текстовыми полями.
...
Рейтинг: 0 / 0
22.05.2006, 20:14
    #33743743
savosin_sergey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Clipper 3.0
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
22.05.2006, 20:15
    #33743746
savosin_sergey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Clipper 3.0
White Owl Потом он умер....
и воскрес под именем harbour
...
Рейтинг: 0 / 0
22.05.2006, 20:25
    #33743755
savosin_sergey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Clipper 3.0
sqlserver через sp_addlinkedserver тоже только первые 244 символа "заглатывает"
...
Рейтинг: 0 / 0
22.05.2006, 21:00
    #33743782
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Clipper 3.0
savosin_sergey White Owl Потом он умер....
и воскрес под именем harbourНее... это нельзя называть воскрес.
Впрочем, можно действительно взять harbour, и сделать выгрузку dbf->csv на нем. Это конечно если оригинального Клиппера нету и религия запрещает пользоваться другими языками :)
А через ODBC/OLEDB длинные текстовые поля как мне кажется прочитать не получится. Во всяком случае я не слышал про драйвера которые это умеют.
...
Рейтинг: 0 / 0
27.05.2006, 11:19
    #33755814
GreenStar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Clipper 3.0
Используйте ADS OLEDB или ODBC (Advantage Database Server).
...
Рейтинг: 0 / 0
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Clipper 3.0 / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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