Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запутался с указателями / 7 сообщений из 7, страница 1 из 1
14.11.2006, 14:58
    #34127442
Igor Skvortsov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запутался с указателями
В элемент структуры sqlda->sqlvar[0].sqldata попадает результат SQL-запроса. Пытаюсь вывести результат запроса на экран:
Код: plaintext
1.
2.
System::String^ tempstring = gcnew String(sqlda->sqlvar[ 0 ].sqldata);
System::Windows::Forms::MessageBox::Show(tempstring, "TEST");
И получаю ахинею. Наверное, я запутался с указателями. Помогите, пожалуйста, разобраться.
sqlda объявлена так:
Код: plaintext
1.
XSQLDA			 *sqlda;
XSQLDA так:
Код: plaintext
1.
2.
3.
4.
typedef struct
{
	XSQLVAR		sqlvar[ 1 ];			
} XSQLDA;
XSQLVAR так:
Код: plaintext
1.
2.
3.
4.
typedef struct
{
	char *			sqldata;			
} XSQLVAR;
...
Рейтинг: 0 / 0
14.11.2006, 15:02
    #34127465
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запутался с указателями
может, ты в кодировках запутался?
...
Рейтинг: 0 / 0
14.11.2006, 15:03
    #34127478
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запутался с указателями
Там первые 2 байта - длина строки (для VARCHAR и CHAR типов)
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
14.11.2006, 15:04
    #34127480
Igor Skvortsov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запутался с указателями
Нет, если в watch добавить sqlda->sqlvar[0].sqldata он указывает бог знает куда, а не на результирующую строку запроса.
&sqlda->sqlvar[0].sqldata - тот же эффект.
...
Рейтинг: 0 / 0
14.11.2006, 15:10
    #34127500
Igor Skvortsov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запутался с указателями
Ой, спасибо:
System::String^ tempstring = gcnew String(sqlda->sqlvar[i-1].sqldata+2);
Так работает.
...
Рейтинг: 0 / 0
14.11.2006, 15:11
    #34127505
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запутался с указателями
Igor SkvortsovString(sqlda->sqlvar[i-1].sqldata+2); Так работает.
там совсем не обязательно есть завершающий ноль.
даже так: сильно повезет, если он есть в результате того, что фактическая длина строки меньше размера поля.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
14.11.2006, 15:25
    #34127557
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запутался с указателями
Карабас Барабас КБ> Там первые 2 байта - длина строки (для VARCHAR и CHAR
КБ> типов)
кстати, наврал немного: это только для VARCHAR
для типа CHAR длину надо брать из размера поля
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запутался с указателями / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]