Скрипт запрашивает базу данных, но не получает символы Юникода - PullRequest
0 голосов
/ 06 января 2012

У меня есть небольшой файл vbscript, который запрашивает базу данных mysql и возвращает набор записей, который я затем отправляю в excel.

Проблема в том, что набор записей не возвращает русских символов, он только возвращает "?" за каждый символ.

Мой код

dim adoConn
dim adoRS
dim n

set adoConn = Createobject("ADODB.Connection")
set adoRS = Createobject("ADODB.Recordset")

adoConn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=server1;DATABASE=dbtest;USER=root;PASSWORD=daveeades;OPTION=3;" 

adoRS.ActiveConnection = adoConn

n=1
if adoConn.errors.count = 0 then
'now get all necessary text comments
adoRS.Open "SELECT `tbllaunchdata`.`fldResponse` FROM `tbllaunchdata`"

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.Workbooks.Add

While (Not adoRS.EOF)
    objExcel.Cells(n, 1).Value = adoRS("fldResponse")
    n = n + 1
    adoRS.Movenext()
Wend
end if
adoRS.close
set adoRS=nothing
adoConn.close
set adoConn=nothing

Может кто-нибудь, пожалуйста, помогите мне с этим, я просто не могу получить символы юникода, отображаемые в Excel.

Большое спасибо

Dave

Ответы [ 2 ]

0 голосов
/ 09 октября 2012

Hiii .. У меня та же проблема .. Но я могу получить точные данные из БД.Но при отображении его в ячейке Excel он отображается как ???? ... Если у вас есть какое-либо решение, пожалуйста, дайте мне знать .. Чтобы передать данные Unicode на Ms sql сервер, нам нужно использовать тип данных NVarchar ... с adVarWChar..

С уважением, Liyo Jose.

0 голосов
/ 06 января 2012

Есть много возможных виновников.

  • Чтобы начать с простой проверки: Пуск - Программы - MS Office Tools - Ms Настройки Office Language => Русский включен?
  • Для полноты: вы можете использовать "show variable" или "\ s", чтобы убедиться в MySQL character_set_client / connection / database / ... и сопоставлениях? (Я могу делать тесты со строгим конфигом utf8 (на машине с Linux)
  • Комментарий WRT: вы можете сделать такой тест

Air! код:

Dim sTest : sTest = "expected russian string"
adoRS.Open "SELECT `tbllaunchdata`.`fldResponse` FROM `tbllaunchdata`"

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.Workbooks.Add

objExcel.Cells(0, 1).Value = adoRS("fldResponse")
objExcel.Cells(1, 1).Value = sTest
objExcel.Cells(2, 1).Value = CStr( sTest = adoRS("fldResponse") )

Нет, спасибо мне: похоже, что действительно важный пункт должен быть:

  • используйте самые современные программные компоненты!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...