|
|
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
приветствую уважаемых спецов! сразу извиняюсь за избитую тему про кодировку, но ответа на свой вопрос я не нашла. Есть MS SQL Server 2000/2005 с таблицей с полем BINARY. Нужно писать/читать в него кириллицу. Проект MFC создан в студии 2005. Мои действия: - готовлю строку wchar_t с русскими буквами, - конверитурую wchar_t-строку в UTF-8 c помощью ф-ции WideCharToMultiByte (CP_UTF8...), - выполняю запрос, н-р: Код: plaintext 1. 2. 3. Оказывается, что в поле BINARY записались кракозябры. Запросы выполняются через написанную мной (с вашей помощью, спасибо вам еще раз) функцию ExecuteQuery - она работает. Проблема - как конвертировать кириллицу в UTF-8, чтобы использовать ее для записи/считывания в поле BINARY или в условиях запроса в сравнении? P.S. использовать nchar, nvarchar не предлагайте, надо именно в binary ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 12:10:17 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
используй параметры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 12:49:25 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
maXmoиспользуй параметры параметры в чем? если речь о WideCharToMultiByte, то вот как происходит кодирование: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 13:04:37 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
Lenie запрос, н-р: Код: plaintext 1. 2. 3. А как насчет Код: plaintext 1. 2. и никакого UTF-8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 13:05:16 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
Lenieпараметры в чем?В запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 13:12:18 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
ZrenByА как насчет Код: plaintext 1. 2. и никакого UTF-8 такой вариант работает, если захардкодить wchar_t строку, т.е. если сделать так: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 13:42:52 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
maXmo Lenieпараметры в чем?В запросе.какие параметры нужно использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 13:44:11 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
Lenie Код: plaintext 1. 2. 3. извиняюсь, ошиблась при таком способе тоже в query - крякозябры всё нормально только когда в выражение запроса вместо wstr напрямую подставляется текст ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 14:15:55 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
Lenie Lenie Код: plaintext 1. 2. 3. извиняюсь, ошиблась при таком способе тоже в query - крякозябры всё нормально только когда в выражение запроса вместо wstr напрямую подставляется текст Э.... У вас, действительно, мешанина из char и wchar_t или это следствие Ctrl-C+Ctrl-V ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 14:21:48 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
ZrenBy Э.... У вас, действительно, мешанина из char и wchar_t или это следствие Ctrl-C+Ctrl-V ? в char-строку я собираю SQL-выражение, к-рое потом передается в функцию как параметр для выполнения а в wchar_t-строке хранится текст кириллица ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 14:27:40 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
Lenie ZrenBy Э.... У вас, действительно, мешанина из char и wchar_t или это следствие Ctrl-C+Ctrl-V ? в char-строку я собираю SQL-выражение, к-рое потом передается в функцию как параметр для выполнения а в wchar_t-строке хранится текст кириллица В этом и проблема. SQL-выражение должно быть wchar_t-строкой и параметр функции должен быть wchar_t-строкой и компоненты доступа к MSSQL тоже должны работать с wchar_t-строкой. Тогда все будет нормально. Если это невозможно, тогда один выход - на клиенте формировать из wchar_t-строки бинарное представление типа, 0xDD04E504... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 14:58:02 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
ZrenByВ этом и проблема. SQL-выражение должно быть wchar_t-строкой и параметр функции должен быть wchar_t-строкой и компоненты доступа к MSSQL тоже должны работать с wchar_t-строкой. Тогда все будет нормально. я неправильно построила строку с SQL-выражением. Вписала туда 'N' перед строкой, да к тому же передаю wchar_t-строку. Исправила: Код: plaintext 1. ZrenByЕсли это невозможно, тогда один выход - на клиенте формировать из wchar_t-строки бинарное представление типа, 0xDD04E504... скажите пжл, как это сделать:) спасибо за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 15:34:28 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
Lenieкакие параметры нужно использовать?чем к скрулю подключаешься? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 16:17:04 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
если мфц/одбц, то читай в мсдне «Recordset: Parameterizing a Recordset (ODBC)». ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 16:28:28 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
maXmoесли мфц/одбц, то читай в мсдне «Recordset: Parameterizing a Recordset (ODBC)». а, ясно нет, я подключаюсь ODBC API функциями SQLDriverConnect и др. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 16:39:43 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
тогда читай про SQLBindParameter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 16:45:29 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
maXmoтогда читай про SQLBindParameterSQLBindParameter работает с хранимыми процедурами, а у меня случай - выполнение запросов. ХП c кириллицей сдружила :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 17:26:23 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
LenieSQLBindParameter работает с хранимыми процедурами, а у меня случай - выполнение запросов.да вроде и так должен работать: msdnSQL_PARAM_INPUT. The parameter marks a parameter in an SQL statement that does not call a procedure, such as an INSERT statement, or it marks an input parameter in a procedure. For example, the parameters in INSERT INTO Employee VALUES (?, ?, ?) are input parameters , while the parameters in {call AddEmp(?, ?, ?)} can be, but are not necessarily, input parameters. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 17:39:51 |
|
||
|
кириллица в MS SQL, BINARY
|
|||
|---|---|---|---|
|
#18+
maXmoда вроде и так должен работать: [quot msdn]SQL_PARAM_INPUT. The parameter marks a parameter in an SQL statement that does not call a procedure, such as an INSERT statement, or it marks an input parameter in a procedure. For example, the parameters in INSERT INTO Employee VALUES (?, ?, ?) are input parameters , while the parameters in {call AddEmp(?, ?, ?)} can be, but are not necessarily, input parameters.:) спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 17:42:44 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34905454&tid=2027896]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
200ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 504ms |

| 0 / 0 |
