crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Выборка из базы данных
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
inviZ Дата 18.6.2010, 11:28
 
Цитата(BRE @ 18.6.2010, 3:41) *
Так может проще использовать:
QByteArray QByteArray::toHex () const


Ха, точно, тупица я, не знал про этот метод)
AD Дата 17.6.2010, 19:59
 
Цитата(BRE @ 17.6.2010, 20:41) *
Так может проще использовать:
QByteArray QByteArray::toHex () const

Да! :) Я уже так и сделал! :)
BRE Дата 17.6.2010, 19:41
  Так может проще использовать:
QByteArray QByteArray::toHex () const
AD Дата 17.6.2010, 19:35
 
Цитата(inviZ @ 17.6.2010, 20:26) *
Смысл в том, что SQL Server
Цитата
<|p§=Ђ�Я

Например, '<' здесь это 0x3C, '|' - 0x7C, ну и так далее.
И клиент, который выдает тебе "0x3C7C70A73D8098DF", тоже аналогичным образом форматирует эти байты в удобном для тебя виде.

Фишка не в этом! :) Он и должен выдавать билибердовую строку, это ведь секретный ключ! ;) Дело в том, что в зависимости от кодировки, шестнадцатеричный код некоторых символов отличается, что есть очень плохо. А вот сейчас эти отличия нивелируются.
inviZ Дата 17.6.2010, 19:26
  Смысл в том, что SQL Server возвращает на твой запрос просто 8 байт данных. Естественно, если ты попытаешься представить их в виде строки, у тебя получится белиберда.

Цитата
<|p§=Ђ�Я

Например, '<' здесь это 0x3C, '|' - 0x7C, ну и так далее.
И клиент, который выдает тебе "0x3C7C70A73D8098DF", тоже аналогичным образом форматирует эти байты в удобном для тебя виде.
AD Дата 17.6.2010, 19:21
 
Цитата(inviZ @ 17.6.2010, 20:13) *
Пробуй.

Ты гений. СПАСИБО! :)
inviZ Дата 17.6.2010, 19:13
 
bool rt = query.exec(select_query);
query.next(); 
QByteArray bytes = query.value(0).toByteArray();

QString str = "0x";
foreach(quint8 b, bytes)
{
    str.append(QString("%1").arg((uint)b, 2, 16, QChar('0')));
}


Пробуй.
Litkevich Yuriy Дата 17.6.2010, 19:04
 
Цитата(AD @ 17.6.2010, 22:54) *
Так вот мне нужен результат, подобный тому, что я получаю в СУБД.
ты послушай проверь, как BRE советует
AD Дата 17.6.2010, 18:54
  Ладно, чтобы было понятно, вот результат выборки через СУБД и выборка программы.

Запрос
select cast(secretKey as binary(8)) as secretKey from dbo.DeviceList where secretKey <> '' and serialNumber = '22021   '

Результат СУБД SQL Server:
0x3C7C70A73D8098DF


программный код
bool rt = query.exec(select_query);
query.next(); 
QString str(query.value(0).toString());

Результат кода:
<|p§=Ђ�Я

Так вот мне нужен результат, подобный тому, что я получаю в СУБД.
BRE Дата 17.6.2010, 18:49
  Какая БД используется?
Этот запрос в sqlbrowser дает нужный результат?
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 4.7.2025, 22:41