Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Кодировка в XL при SQL запросе к базе MySQL / 7 сообщений из 7, страница 1 из 1
03.10.2008, 00:12
    #35573620
strike1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в XL при SQL запросе к базе MySQL
Доброго всем времени суток. Господа программеры, помогите мудрым советом. Суть проблемы в следующем. Пишу на VBA под XL. Подключаюсь к базе MySQL через XL. Вытягиваю данные в неправильной кодировке сикарашки короче на листе в Экселе. Даю запрос в MySQL выводит русский шрифт нормально. КАк в VBA указать кодировку. Кусок кода таков:

Dim test As New ADODB.Connection
Dim rs As New ADODB.Recordset

Set test = New ADODB.Connection

test.Open "Driver={MySQL ODBC 5.1 Driver};Server=localhost;DATABASE=test;" & _
"User=root;Password=root;PORT=3306;OPTION=3;"
test.CursorLocation = adUseClient

rs.Open "select kod, f, i, o, inn from exam" & _
" where kod='some_code'", test, adOpenStatic, adLockBatchOptimistic, adCmdText
rs.ActiveConnection = Nothing

ActiveSheet.Range("A2").CopyFromRecordset rs
ActiveSheet.Columns("A:I").AutoFit
....
...
Рейтинг: 0 / 0
03.10.2008, 00:16
    #35573625
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в XL при SQL запросе к базе MySQL
Лучше спроси на MySQL'ном форуме умеет его ODBC драйвер делать перекодировку или нет. Если не умеет, то вместо CopyFromRecordset прийдется писать цикл, вручную пробегать по всему резалтсету и вручную же конвертировать поля перед помещением их на лист.
...
Рейтинг: 0 / 0
03.10.2008, 00:26
    #35573633
strike1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в XL при SQL запросе к базе MySQL
Ну я так предполагаю, что дето здесь надо копать:

test.Open "Driver={MySQL ODBC 5.1 Driver};Server=localhost;DATABASE=test;" & _
"User=root;Password=root;PORT=3306;OPTION=3;" задать мож надо параметр.

Вот короче, как я файл подгружал в XL:
path_to_f = "TEXT;" & path_to_f & file_name_f

Range(dest).Select

With ActiveSheet.QueryTables.Add(Connection:=path_to_f, Destination:=Range(dest))
....
.TextFilePlatform = 866 // кодировка
.TextFileStartRow = 1
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
.....

End With

Думаю з запросом таже байда, тока пока не могу найти инфы!!!!
...
Рейтинг: 0 / 0
03.10.2008, 02:06
    #35573697
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в XL при SQL запросе к базе MySQL
strike1Ну я так предполагаю, что дето здесь надо копать:
....
Думаю з запросом таже байда, тока пока не могу найти инфы!!!!Неправильно предполагаешь. Поэтому и не найдешь.
Это совершенно разные механизмы и то что один из них умеет, второй уметь не обязан.
...
Рейтинг: 0 / 0
03.10.2008, 06:08
    #35573735
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в XL при SQL запросе к базе MySQL
Код: plaintext
1.
2.
" where kod='some_code'", test, adOpenStatic, adLockBatchOptimistic, adCmdText
rs.ActiveConnection = Nothing
ActiveSheet.Range("A2").CopyFromRecordset rs
А не влияет сброс коннекта на содержимое рекордсета?

Попробуй еще загнать рекордсет в массив Variant
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    rs.MoveFirst
    myArr = rs.GetRows()
    For i = LBound(myArr, 1 ) To UBound(myArr,  1 )
        For j = LBound(myArr, 2 ) To UBound(myArr,  2 )
           Cells(i,j).Value=myArr(i, j)
        Next
    Next
В крайнем случае, если врет драйвер ODBC, - этим путем и перекодируешь...
...
Рейтинг: 0 / 0
03.10.2008, 06:10
    #35573736
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в XL при SQL запросе к базе MySQL
Код: plaintext
* Cells(i+ 1 ,j+ 1 )
...
Рейтинг: 0 / 0
03.10.2008, 20:34
    #35575843
strike1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка в XL при SQL запросе к базе MySQL
Ok. Пасиба за ответы. Попробую ...
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Кодировка в XL при SQL запросе к базе MySQL / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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