|
|
|
DBTYPE_NUMERIC крушение мозга
|
|||
|---|---|---|---|
|
#18+
Добрый день, добрый ALL! Прошу, помощи в размышлениях. Исходные данные: MFC, CDynamicParameterAccessor Задача: Пользуя OLE DB нужно вывести в CListView содержимое набора записей. Проблема: Скорее, непонимание. Любая БД поддерживает тип данных NUMERIC. Я получаю значение из этого поля по void* CDynamicParameterAccessor::GetVaue() в структуру Typedef struct tagDB_NUMERIC { BYTE precision; BYTE scale; BYTE sign; BYTE val[16]; } DB_NUMERIC; Здесь меня интересует представление числа в BYTE val[16]; Как понял оно следующее Пример: - 256 (десятичная система) 1,0,...,0 (значения элементов массива) - 257 1,1,0,...,0 и т.д. Возникают вопросы: 1. Как это представление запихать в переменную для последующей работы? (int, double) Лично у меня в голове рисуются циклы прохода по ячейкам массива с умножением 256 на значение в ячейке массива, с поправкой на позицию ячейки в массиве, с последующим суммированием результата. Но мне представляется, что должен быть иной, более красивый метод преобразования. 2. Исходя из размера массива максимально возможное число представляется в виде всех ячеек заполненных значением 256. Собственно. Я не понимаю КАК с таким числом можно работать? Мне не потребуется выполнять с ним арифметические операции, банальный вывод на экран, представив его в десятичной форме. Но КАК это можно сделать??? Мне интересно мнение людей работавших с OLE DB и разбиравших указанный вопрос. Как по Вашему - верны-ли мои мысли? Как корректно преобразовать значение в DB_NUMERIC в строку? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 09:39 |
|
||
|
DBTYPE_NUMERIC крушение мозга
|
|||
|---|---|---|---|
|
#18+
vanomanЛюбая БД поддерживает тип данных NUMERIC. Смелое заявление vanomanКак корректно преобразовать значение в DB_NUMERIC в строку? Преобразованием на стороне СУБД например ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 09:53 |
|
||
|
DBTYPE_NUMERIC крушение мозга
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Преобразованием на стороне СУБД например Угу и нафиг вообще нужен C++ когда можно всё делать в СУБД? Gluk (Kazan)Смелое заявление Конечно это существенная поправка. Вернее было сказать любая СУБД, данные из которой можно получить при помощи OLE DB Гипотетически Может поддерживать тип NUMERIC. По делу общаться интереснее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 10:06 |
|
||
|
DBTYPE_NUMERIC крушение мозга
|
|||
|---|---|---|---|
|
#18+
Не выеживайся, я тебе ответил по делу. Инструменты хорошо применять к месту и ко времени, а не пытаться удалять гланды через задний проход. Для Oracle имеются OLE DB драйверы, но NUMERIC в ТВОЕМ понимании он НЕ ПОДДЕРЖИВАЕТ, так что свои гипотетические предположения можешь засунуть себе в то место, через которое ты удаляешь гланды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 10:28 |
|
||
|
DBTYPE_NUMERIC крушение мозга
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Инструменты хорошо применять к месту и ко времени... Согласен. Ещё в для Оракла можно использовать OCI,OCCI... в котром всё красивее и лучше. Машины пользуют бензин. А самолёты летают по небу. ... Мне же нужно разобраться с этой структурой. Нечего сказать по вопросу: будь добр - не говори вообще. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 10:36 |
|
||
|
DBTYPE_NUMERIC крушение мозга
|
|||
|---|---|---|---|
|
#18+
vanomanМне же нужно разобраться с этой структурой. Разбирайся, в чем проблема ??? vanomanНечего сказать по вопросу: будь добр - не говори вообще. Давай не будем давать указания, что кому когда и где говорить ? vanoman Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 10:49 |
|
||
|
DBTYPE_NUMERIC крушение мозга
|
|||
|---|---|---|---|
|
#18+
Если ты не понял сути ответа, расшифрую: Для выполнения преобразований следует использовать штатные средства, а не пытаться хачить внутренние структуры. Если библиотека не предоставляет вменяемых средств для таких преобразований, стоит подумать о замене ее на что нибудь более другое (OCI там или OCCI, у них с преобразованиями все ок). В проттивном случае, все ПРОБЛЕМА напоминает проблему всем известного КОТА которому тупо нечего делать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 11:04 |
|
||
|
DBTYPE_NUMERIC крушение мозга
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Если ты не понял сути ответа, расшифрую: Для выполнения преобразований следует использовать штатные средства, а не пытаться хачить внутренние структуры. Если библиотека не предоставляет вменяемых средств для таких преобразований, стоит подумать о замене ее на что нибудь более другое (OCI там или OCCI, у них с преобразованиями все ок). Да какие тут внутренние структуры? Самая что ни на есть распространённая библиотека - OLE DB. В ентом MSDN прописаны все возможные типы данных что она может вернуть. Вот есть этот конкретный тип. Для начала есть конкретный вопрос :"Как перефигачить в строку?" Потом, по мере не соображения, возможно появятся другие вопросы... Неужели никто этого до меня не делал? Неужели никто не сталкивался с проблемой в поле типа NUMERIC лежит очень большое число и с ним надо работать? Неужели никто не разбирал число из этой структуры когда все элементы BYTE val[16]; взведены в 256? А что касается Кота, то как дальше писать код если такая низовая проблема, как получение значения из поля не решена? У меня самый распространённый сервак MS SQL. Неужели весь мир работает с ним иначе не через OLE? КАК? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 12:18 |
|
||
|
DBTYPE_NUMERIC крушение мозга
|
|||
|---|---|---|---|
|
#18+
чё-то нашёл msdnIDataConvert::DataConvert Converts the data from the source type to the destination type. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 12:22 |
|
||
|
DBTYPE_NUMERIC крушение мозга
|
|||
|---|---|---|---|
|
#18+
vanomanУ меня самый распространённый сервак MS SQL. Неужели весь мир работает с ним иначе не через OLE? КАК?да это самый сосущий сервак, с ним никто не работает, вот и не знает никто, как с ним работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 12:26 |
|
||
|
DBTYPE_NUMERIC крушение мозга
|
|||
|---|---|---|---|
|
#18+
maXmoчё-то нашёл Эх ёёёё... Идея! Как ты это искал? :-) Ушёл читать :-) Спасибо! Доложу по результату. p.s. только бы на найти шаблонный класс :-) maXmo vanomanУ меня самый распространённый сервак MS SQL. Неужели весь мир работает с ним иначе не через OLE? КАК?да это самый сосущий сервак, с ним никто не работает, вот и не знает никто, как с ним работать. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 12:32 |
|
||
|
DBTYPE_NUMERIC крушение мозга
|
|||
|---|---|---|---|
|
#18+
открыл оле дб референс, там всё на видном месте лежит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 12:36 |
|
||
|
DBTYPE_NUMERIC крушение мозга
|
|||
|---|---|---|---|
|
#18+
maXmo vanomanУ меня самый распространённый сервак MS SQL. Неужели весь мир работает с ним иначе не через OLE? КАК?да это самый сосущий сервак, с ним никто не работает, вот и не знает никто, как с ним работать. Сервак нормальный, OLE DB - сосучий. Когда был аналогичный выбор, остановились на ODBC. Щастливы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 12:37 |
|
||
|
DBTYPE_NUMERIC крушение мозга
|
|||
|---|---|---|---|
|
#18+
vanoman У меня самый распространённый сервак MS SQL. Неужели весь мир работает с ним иначе не через OLE? КАК? Весь мир работает через ADO. вы бы еще через сырые сокеты пытались с ним работать, тоже учень увлекательное занятие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 20:37 |
|
||
|
DBTYPE_NUMERIC крушение мозга
|
|||
|---|---|---|---|
|
#18+
Lepsik vanoman У меня самый распространённый сервак MS SQL. Неужели весь мир работает с ним иначе не через OLE? КАК? Весь мир работает через ADO. вы бы еще через сырые сокеты пытались с ним работать, тоже учень увлекательное занятие. ADO не более чем надстройка над OLE DB. Жизнь прикладнику облегчает, но ПРОБЛЕМ OLE DB не решает, к сожалению ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 08:31 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34596610&tid=2028659]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 483ms |

| 0 / 0 |
