![]() |
|
Модераторы: bsa |
![]()
|
|
| Acer |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: нет Всего: 8 |
Доброго времени суток.
Подскажите, что я не правильно сделал. Вопрос в следующем: есть метод:
Если я внутри этого метода вывожу в консоль value, то значение есть все время. Если вызываю метод из вне, то значение есть через раз. Вызываю так:
Вот скриншоты, чтобы было понятнее... Это, когда вывожу value внутри метода getCellValue ![]() Это когда не в нем ![]() Это сообщение отредактировал(а) Acer - 2.11.2008, 20:48 |
||||
|
|||||
| Acer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: нет Всего: 8 |
Help please
|
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
внутри функции эта переменная является указателем - и выводится она как указатель
снаружи она объявлена как массив символов и передается на вывод как char* - т.е. строка. Если первый байт массива ==0, то естественно это конец строки |
|||
|
||||
| Acer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: нет Всего: 8 |
логично... Но почему указатели есть везде, а вот строки через одну?
|
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
строки тоже везде есть
только некоторые пустые - т.е. первый символ (индекс 0) содержит конец строки '\0' как я вижу вы передаете указатель на буфер в какую-то функцию, которая вероятно должна заполнить буфер строкой. Вероятно строка эта пустая. |
|||
|
||||
| Acer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: нет Всего: 8 |
Значит бок не с указателями, а с SQL API... Где-то что-то недосмотрел. Спасибо
|
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
посмотрите поведение SQLGetData в случае недостаточного размера буфера
может быть вариант, что если буфер слишком мал, то даже при наличии "чего вернуть" данная функция возвращает пустую строку для таких вещей я бы рекомендовал проверить, какой максимальный размер для данного типа отводится в БД - обычно эти размеры выводят в библиотеках в виде констант или дефайнов - и используйте буфер размером максимальный_размер+1 (+1 - для символа конца строки) |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |