|
Загрузка из SQL | ☑ | ||
---|---|---|---|---|
0
Solveig
17.06.14
✎
09:31
|
Подключаюсь к базе SQL.
ПодключениеКБД = Новый COMОбъект("ADODB.Connection"); ПодключениеКБД.ConnectionString = "Provider=sqloledb;Server=***;UID=***;PWD=***;"; ПодключениеКБД.ConnectionTimeOut = 2400; ПодключениеКБД.CursorLocation = 3; ПодключениеКБД.Open(); При загрузке значений полей таблицы результата запроса, вместо русских символов выводятся "вопросики". Подскажите, пожалуйста, как победить? |
|||
1
mehfk
17.06.14
✎
09:32
|
||||
2
Solveig
17.06.14
✎
09:43
|
(1) Написал ПодключениеКБД.ConnectionString = "Provider=sqloledb;Server=***;UID=***;PWD=***;charset=windows-1251"; не помогает.
ПодключениеКБД.ConnectionString = "Provider=sqloledb;Server=***;UID=***;PWD=***;charset=cyrillic"; тоже. |
|||
3
Maxus43
17.06.14
✎
09:48
|
а в базе скл какая кодировка у БД?
|
|||
4
Solveig
17.06.14
✎
09:55
|
(3) Там есть свойство язык, указан английский
|
|||
5
Maxus43
17.06.14
✎
09:56
|
(4) там есть ещё и кодировка
|
|||
6
shuhard
17.06.14
✎
09:57
|
(2) Charset is used only with text Stream objects
ни на какие мысли не наводит ? |
|||
7
Solveig
17.06.14
✎
09:57
|
(5) Server Collation = Cyrillic_General_CI_AS
|
|||
8
Solveig
17.06.14
✎
09:58
|
(6) Нет, я 1С-ник, а не SQL-щик )
|
|||
9
shuhard
17.06.14
✎
10:00
|
(8) повторим вопрос
где код которым из рекордсета извлекаются данные в 1С ? |
|||
10
Solveig
17.06.14
✎
10:04
|
(9) ПодключениеКБД = Новый COMОбъект("ADODB.Connection");
ПодключениеКБД.ConnectionString = "Provider=sqloledb;Server=***;UID=***;PWD=***"; ПодключениеКБД.ConnectionTimeOut = 2400; ПодключениеКБД.CursorLocation = 3; ПодключениеКБД.Open(); Команда = Новый COMОбъект("ADODB.Command"); Команда.ActiveConnection = ПодключениеКБД; Команда.CommandText = "SELECT тудым-сюдым"; Результат = Команда.Execute(); |
|||
11
Solveig
17.06.14
✎
10:05
|
(9) Пока НЕ Результат.EOF() Цикл
Артикул = Результат.Fields("Artikul_Artikul").Value; |
|||
12
Woldemar177
17.06.14
✎
10:16
|
Чисто интересно SQL то какой? MS SQL, Postgresql или Firebird?
|
|||
13
Solveig
17.06.14
✎
10:18
|
(12) MS 2012
|
|||
14
fresh_meat
17.06.14
✎
10:24
|
Было подобно при подключении к базе oracle, установка Numeric settings в значение "Use Microsoft regional settings", в настройке DSN помогла.
|
|||
15
fresh_meat
17.06.14
✎
10:24
|
подобное
|
|||
16
Solveig
17.06.14
✎
12:48
|
Ап
|
|||
17
Woldemar177
17.06.14
✎
12:49
|
charset=UTF8
??? |
|||
18
Woldemar177
17.06.14
✎
12:52
|
+(4) так может они и в базе хранятся в виде вопросиков - если указан английский?
|
|||
19
Solveig
17.06.14
✎
12:57
|
(17) То же самое
|
|||
20
Solveig
17.06.14
✎
13:01
|
(9) Я код выложил, посмотри, пожалуйста
|
|||
21
МихаилМ
17.06.14
✎
13:10
|
(20)
в ssms что возвращает запрос. |
|||
22
shuhard
17.06.14
✎
13:11
|
(20) а какая буква не понятна ?
Charset is used only with text Stream objects |
|||
23
Solveig
17.06.14
✎
13:12
|
(21) В Query Analyzere все нормально выводиться - на русском.
|
|||
24
Solveig
17.06.14
✎
13:14
|
(22) Я не понимаю, что такое Stream. Подскажи, пожалуйста, конкретно, что мне нужно написать.
|
|||
25
shuhard
17.06.14
✎
13:15
|
(24) гугл
|
|||
26
МихаилМ
17.06.14
✎
13:15
|
(23)
Вы используете Query Analyzer (от ms sql 6,..,2000) для работы с ms sql 2012 ? я удивлен. |
|||
27
Solveig
17.06.14
✎
13:17
|
(26) Нет, SSMS 2012, но смысл от этого не меняется, там на русском выводится.
|
|||
28
МихаилМ
17.06.14
✎
13:18
|
+(26)
а я думал , что QA не заработает с ms sql 2012 тк он использует CDO, а ms sql 2012 cdo не поддерживает. |
|||
29
Solveig
17.06.14
✎
13:18
|
(25) Это в первую очередь я смотрел. Ты ведь просил код выложить для чего-то...
|
|||
30
МихаилМ
17.06.14
✎
13:26
|
||||
31
МихаилМ
17.06.14
✎
13:33
|
||||
32
Solveig
17.06.14
✎
13:50
|
(31) И куда мне VALUES(N'имя') вставить? У меня в запросе данные из таблиц SQL берутся.
|
|||
33
МихаилМ
17.06.14
✎
14:06
|
(32)
да. не досматрел. там про вставку . поиграйтесь с COLLATE http://msdn.microsoft.com/ru-ru/library/ms143726.aspx#Locale_Defn опять же непонятно почему Вы используете CursorLocation = 3 ? хотя это врадли повлияет на client charset = 3 |
|||
34
Solveig
17.06.14
✎
14:27
|
(33) Пробовал ставить для поля COLLATE Cyrillic_General_CI_AS тоже не помогает, но и на этом спасибо
|
|||
35
МихаилМ
17.06.14
✎
14:43
|
(34)
что значит "ставить" ? |
|||
36
Solveig
17.06.14
✎
14:45
|
(35) SELECT Table.Name OLLATE Cyrillic_General_CI_AS AS Name FROM Table
|
|||
37
МихаилМ
17.06.14
✎
14:52
|
(0)
попробуйте поиграться с charset в ConnectionString или поменять sqloledb на sqloledb.1 ну и CursorLocation = 3 уберите |
|||
38
МихаилМ
17.06.14
✎
15:08
|
||||
39
Solveig
17.06.14
✎
15:21
|
(38) Это ведь для MySql, в 1С особо не разгуляешься
|
|||
40
РенеДекарт
17.06.14
✎
15:27
|
(39) там для SQL2000.
|
|||
41
Serginio1
17.06.14
✎
16:23
|
Попробуй такую строку подключения
ConnectionString ="DRIVER=SQL Server; |UID=администратор; |Network=DBMSSOCN; |LANGUAGE=русский; |DATABASE="+ДанныеСервера.Ref+"; |WSID="+ДанныеСервера.Srvr+"; |APP=Microsoft® Windows® Operating System; |Trusted_Connection=Yes; |SERVER="+ДанныеСервера.Srvr; |
|||
42
МихаилМ
17.06.14
✎
16:28
|
+(41)
тоже решение. но это драйвер odbc |
|||
43
Serginio1
17.06.14
✎
16:40
|
(42) Я так понял что odbc предпочтительнее
http://social.msdn.microsoft.com/Forums/sqlserver/en-US/45fd704f-e1d8-4aed-9f12-0b8f236228c6/odbc-or-oledb?forum=transactsql |
|||
44
Solveig
18.06.14
✎
09:50
|
(41) Попробовал
ПодключениеКБД = Новый COMОбъект("ADODB.Connection"); ПодключениеКБД.ConnectionString = "DRIVER=SQL Server; |UID=***; |PWD=***; |Network=DBMSSOCN; |LANGUAGE=русский; |WSID=basa; |APP=Microsoft® Windows® Operating System; |Trusted_Connection=Yes; |SERVER=***;"; ПодключениеКБД.ConnectionTimeOut = 2400; ПодключениеКБД.CursorLocation = 3; ПодключениеКБД.Open(); На последней строчке "виснет 1С" и все. |
|||
45
Ёпрст
18.06.14
✎
10:09
|
(44) выкинь вот это
ПодключениеКБД.ConnectionTimeOut = 2400; ПодключениеКБД.CursorLocation = 3; |
|||
46
Ёпрст
18.06.14
✎
10:11
|
Так хоть соединяется ?
СоединениеБазы = Новый COMОбъект("ADODB.Connection"); driver="SQL Server"; server="192.168...."; login="sa"; password="вася"; base="база васи"; ConnectionString = "driver={"+driver+"}; Server="+server+"; uid="+login+"; Pwd="+password+"; Database ="+base+";"; СоединениеБазы.Open(ConnectionString); |
|||
47
Solveig
18.06.14
✎
10:17
|
(45) То же самое
(46) Соединяется |
|||
48
Ёпрст
18.06.14
✎
10:19
|
(47) и запрос возвращает кракозябры при этом ?
|
|||
49
Solveig
18.06.14
✎
10:27
|
(48) Да
|
|||
50
Ёпрст
18.06.14
✎
10:29
|
(49) перед запросом, попробуй воткнуть
SET LANGUAGE Russian; |
|||
51
МихаилМ
18.06.14
✎
10:35
|
(50)
спасибо . не знал. |
|||
52
МихаилМ
18.06.14
✎
10:37
|
||||
53
Ёпрст
18.06.14
✎
10:38
|
(52) ага, это для даты и прочей фигни
|
|||
54
Solveig
18.06.14
✎
10:39
|
(50) Не помогает
|
|||
55
К_Дач
18.06.14
✎
10:46
|
когда ставили сервер скуль, какие региональные настройки были?
скрипт смены языковых настроек USE [master] GO ALTER LOGIN [sa] WITH DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF GO |
|||
56
Solveig
18.06.14
✎
10:49
|
(55) Там был указан язык английский.
Но в самой базе SQL ведь русский нормально отображается... |
|||
57
Ёпрст
18.06.14
✎
10:55
|
а так ?
ConnectionString = "driver={"+driver+"}; Server="+server+"; uid="+login+"; Pwd="+password+"; Database ="+base+";CharSet=cp1251"; |
|||
58
РенеДекарт
18.06.14
✎
10:59
|
(57) может ему, для начала, базу SQL с типовыми настройками поставить? А потом уже колупаться.
|
|||
59
Ёпрст
18.06.14
✎
11:02
|
(58)это слишком просто
|
|||
60
Solveig
18.06.14
✎
12:07
|
(57) То же самое
|
|||
61
Solveig
18.06.14
✎
12:11
|
При получении результата, у поля есть свойства Результат.Fields("Kassir").Properties.
Среди них есть "COLLATINGSEQUENCE" со значением 1 049, а надо, как я понимаю, 1251. Только напрямую оно не меняется, надо либо при подключении к базе либо при выполнении ADO.Command использовать, только как... |
|||
62
mxs089
18.06.14
✎
14:25
|
почему не через внешний источник?
|
|||
63
Solveig
18.06.14
✎
16:02
|
А кто его знает, попробую значит через внешний источник :)
|
|||
64
Solveig
07.07.14
✎
11:00
|
(62) Через внешний источник на русском выводятся поля корректно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |