Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 mssql 2000 convert varchar to binary  [new]
LSDek
Member

Откуда:
Сообщений: 2
Имеется вот такой запрос:

mssql_query("INSERT INTO exgame.dbo.x2o_user (UserId,Password,UserName,email) VALUES ('$login','$pw','$login','$email')");

где поля UserId,Password имеют тип данных binary

после выполнения появляется следующее:

Warning: mssql_query() [function.mssql-query]: message: Disallowed implicit conversion from data type varchar to data type binary, table 'exgame.dbo.x2o_user', column 'UserId'. Use the CONVERT function to run this query. (severity 16) in d:\www\register.php on line 173

Warning: mssql_query() [function.mssql-query]: message: Disallowed implicit conversion from data type varchar to data type binary, table 'exgame.dbo.x2o_user', column 'Password'. Use the CONVERT function to run this query. (severity 16) in d:\www\register.php on line 173

т.е проблема в типах данных varchar и binary и как видно говорят юзай функцию CONVERT

Подскажите как правильно будет выглядеть запрос c этой функцией
22 авг 07, 14:07    [4560253]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
а открыть БОЛ и посмотреть?

declare @a binary(20)
set @a=0x4B6E79617A657620416C65786579
select convert(varchar(20), @a)
22 авг 07, 14:10    [4560274]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
LSDek
Member

Откуда:
Сообщений: 2
Knyazev Alexey
а открыть БОЛ и посмотреть?

declare @a binary(20)
set @a=0x4B6E79617A657620416C65786579
select convert(varchar(20), @a)


@a - без этого никак?

Например ...VALUES (convert('$login' as binary),convert('$pw' as binary),'$login','$email')");

Если написал бред, сильно не пинайте)
22 авг 07, 14:24    [4560376]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
LSDek
Knyazev Alexey
а открыть БОЛ и посмотреть?

declare @a binary(20)
set @a=0x4B6E79617A657620416C65786579
select convert(varchar(20), @a)


@a - без этого никак?

Например ...VALUES (convert('$login' as binary),convert('$pw' as binary),'$login','$email')");

Если написал бред, сильно не пинайте)

Вы так и не открыли БОЛ, как вам уже рекомендовали!!!
есть 2 функции "конвертации"
CONVERT/CAST

либо
cast('$login' as binary(N))...
либо
convert(binary(N),'$login')...
22 авг 07, 19:26    [4562647]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: mssql 2000 convert varchar to binary  [new]
BIC
Member

Откуда: Норильск
Сообщений: 6
Я что-то так и не понял как функцию convert применить в запросе INSERT.
Можно именно пример, по представленному выше запросу.
Спасибо.
29 июл 09, 17:42    [7475482]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
Var79
Member

Откуда:
Сообщений: 890
mssql_query("INSERT INTO exgame.dbo.x2o_user (UserId,Password,UserName,email) VALUES ('$login','$pw','$login','$email')");
это именно запрос или кусок из PHP кода
'$email' переменная или значение
29 июл 09, 17:57    [7475595]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
BIC
Member

Откуда: Норильск
Сообщений: 6
Var79
mssql_query("INSERT INTO exgame.dbo.x2o_user (UserId,Password,UserName,email) VALUES ('$login','$pw','$login','$email')");
это именно запрос или кусок из PHP кода
'$email' переменная или значение


Не суть. Скажем $login и $pw и есть значение. Как будет выглядеть полный запрос с конвертом?
29 июл 09, 18:04    [7475644]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
Var79
Member

Откуда:
Сообщений: 890
mssql_query("INSERT INTO exgame.dbo.x2o_user (UserId,Password,UserName,email) VALUES (convert(binary(N),'$login'),'$pw','$login','$email')");
29 июл 09, 18:11    [7475669]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
BIC
Member

Откуда: Норильск
Сообщений: 6
Var79
mssql_query("INSERT INTO exgame.dbo.x2o_user (UserId,Password,UserName,email) VALUES (convert(binary(N),'$login'),'$pw','$login','$email')");
Пробовал. Не помогает.
29 июл 09, 18:14    [7475690]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
Var79
Member

Откуда:
Сообщений: 890
'$email' - какая то стремная строка с точки зрения пхп имхо, давно не занимался пхп
29 июл 09, 18:17    [7475706]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
Var79
Member

Откуда:
Сообщений: 890
покажите типы колонок в x2o_user
29 июл 09, 18:17    [7475710]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
Var79
Member

Откуда:
Сообщений: 890
BIC
Var79
mssql_query("INSERT INTO exgame.dbo.x2o_user (UserId,Password,UserName,email) VALUES (convert(binary(N),'$login'),'$pw','$login','$email')");
Пробовал. Не помогает.

и что именно написано в ошибке
29 июл 09, 18:18    [7475712]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
Var79
Member

Откуда:
Сообщений: 890
BIC
Var79
mssql_query("INSERT INTO exgame.dbo.x2o_user (UserId,Password,UserName,email) VALUES (convert(binary(N),'$login'),'$pw','$login','$email')");
Пробовал. Не помогает.

любопытно какой запрос уходит на ms sql сервер, посмотрите в профайлере
29 июл 09, 18:19    [7475720]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
BIC
Member

Откуда: Норильск
Сообщений: 6
Var79
BIC
Var79
mssql_query("INSERT INTO exgame.dbo.x2o_user (UserId,Password,UserName,email) VALUES (convert(binary(N),'$login'),'$pw','$login','$email')");
Пробовал. Не помогает.

и что именно написано в ошибке


Warning: mssql_query() [function.mssql-query]: message: Unclosed quotation mark before the character string '0x3e2549f032ca6839f1c76869d1dd0953'. (severity 15)
29 июл 09, 18:23    [7475738]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
Var79
Member

Откуда:
Сообщений: 890
так и знал :)
29 июл 09, 18:27    [7475753]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
BIC
Member

Откуда: Норильск
Сообщений: 6
Var79
так и знал :)

Есть решение?
29 июл 09, 18:27    [7475758]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
Var79
Member

Откуда:
Сообщений: 890
в sql profiler смотрели? если запрос неушел то ошибка в PHP.
как я вижу не соблюден синтаксис PHP. но какой он должен быть не знаю, вы же пишите на пхп вам виднее
29 июл 09, 18:34    [7475782]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
Var79
Member

Откуда:
Сообщений: 890
может как то так
mssql_query("INSERT INTO exgame.dbo.x2o_user (UserId,Password,UserName,email) VALUES (".$login.",'$pw','$login','$email')");
вообще сходите на форум по PHP
29 июл 09, 18:36    [7475790]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
BIC
Member

Откуда: Норильск
Сообщений: 6
Var79
может как то так
mssql_query("INSERT INTO exgame.dbo.x2o_user (UserId,Password,UserName,email) VALUES (".$login.",'$pw','$login','$email')");
вообще сходите на форум по PHP

Синтаксис РНР соблюден.
29 июл 09, 18:43    [7475816]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
vino
Member

Откуда:
Сообщений: 1191
BIC
Var79
может как то так
mssql_query("INSERT INTO exgame.dbo.x2o_user (UserId,Password,UserName,email) VALUES (".$login.",'$pw','$login','$email')");
вообще сходите на форум по PHP

Синтаксис РНР соблюден.
вряд ли
Насколько помню, переменные, начинающиеся с $ не нужно брать в кавычки, т.е. их не надо указывать внутри строки, они должны просто конкатинироваться со строкой запроса
mssql_query("INSERT INTO exgame.dbo.x2o_user (UserId,Password,UserName,email) VALUES (CAST('"$login"' as binary(100)),'"$pw"','"$login"','"$email"')");
29 июл 09, 19:07    [7475882]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
Var79
Member

Откуда:
Сообщений: 890
вы все еще ждете ответ?
дляанчала глянте что показывает sql profiler
29 июл 09, 19:10    [7475890]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
vino
Member

Откуда:
Сообщений: 1191
вот еще заметил
LSDek
где поля UserId,Password имеют тип данных binary
и, все-таки, вы не указали точный тип, а желательно это сделать!
Получается как-то так
mssql_query("INSERT INTO exgame.dbo.x2o_user (UserId,Password,UserName,email)
 VALUES (CAST('"$login"' as varbinary(100)),CAST('"$pw"' as varbinary(100)),'"$login"','"$email"')");
29 июл 09, 19:12    [7475897]     Ответить | Цитировать Сообщить модератору
 Re: mssql 2000 convert varchar to binary  [new]
Var79
Member

Откуда:
Сообщений: 890
создается впечетление что нам это больше нужно чем авторам вопросов :)
29 июл 09, 19:23    [7475918]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить