Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / проблема получения свойства объекта DataLink->ConnectionString / 14 сообщений из 14, страница 1 из 1
09.08.2007, 13:26:03
    #34716854
Demen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема получения свойства объекта DataLink->ConnectionString
Всем доброе время суток

Столкнулся со следующей проблемой:есть код, который вызывает объект Datalink для формирования строки подключения к БД, далее эту строку я планирую записывать либо в реестр либо в ini файл. Проблема возникает, когда я пытаюсь присвоить переменной строку.
Присвоение происходит, но сама строка выглядит как набор непонятных символов. При этом если вывести на печать само свойство, то выводится нормальная строка подключения, а при выводе на печать переменной белиберда...... Я понимаю что неправильно считываю значение данного свойства... Подскажите пожалуйста, как правильно считать это значение....
Приводу листинг кода:
#include<windows.h>
#include<STDAFX.H>
#include<IOSTREAM.H>
LPWSTR unicode(LPCSTR);

#import "C:\Program Files\Common Files\System\ado\msado21.tlb" \
rename("EOF","ADOEOF") rename("BOF","ADOBOF")
#import "C:\Program Files\Common Files\System\ole db\Oledb32.dll"

int main(int argc, char* argv[])
{
CoInitialize(NULL);
MSDASC::IDataSourceLocatorPtr dl=NULL;
ADODB::_ConnectionPtr pConn=NULL;
try
{
dl.CreateInstance(__uuidof(MSDASC::DataLinks));
pConn=dl->PromptNew();
if(NULL==pConn)
return -1;
pConn->Open(pConn->ConnectionString, L"", L"", -1 );

//печать свойства
cout << pConn->ConnectionString; //Печать происходит нормально
char* szCNN = pConn->ConnectionString; //Присвоение значения переменной
cout << szCNN; //вывод переменной на печать выводится белиберда
}
catch (_com_error&)
{
return -1;
}
CoUninitialize();
return 0;
}
Заранее спасибо.....
...
Рейтинг: 0 / 0
09.08.2007, 14:14:19
    #34717089
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема получения свойства объекта DataLink->ConnectionString
Строка наверное в юникоде, а после ее записи в char [] она начинает выводиться как ANSI.

Мона либо конвертировать, либо писать ее в wchat_t[]
________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
09.08.2007, 14:19:34
    #34717113
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема получения свойства объекта DataLink->ConnectionString
что мешает сделать так:
Код: plaintext
1.
AnsiString szCNN = pConn->ConnectionString; //Присвоение значения переменной
cout << szCNN.c_str(); //вывод переменной на печать не выводится белиберда 
или корректно работаем со строками в стиле С
...
Рейтинг: 0 / 0
09.08.2007, 14:23:11
    #34717130
проблема получения свойства объекта DataLink->ConnectionString
egorychчто мешает сделать так:

То, что это Студия, а не Билдер...

egorych
или корректно работаем со строками в стиле С
Это в точку...
...
Рейтинг: 0 / 0
09.08.2007, 14:40:22
    #34717216
Алексей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема получения свойства объекта DataLink->ConnectionString
2 Lelikk: Пробовал и wchar_t присваивал:
wchar_t* szCNN = pConn->ConnectionString
и такой вариант пробовал
OLECHAR* szCNN = pConn->ConnectionString

Выдает либо адрес либо непонятно что......

А как можно сконвертировать данное значение?


С уважением,
...
Рейтинг: 0 / 0
09.08.2007, 14:42:12
    #34717222
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема получения свойства объекта DataLink->ConnectionString
сорри, не обратил внимания. тогда так:
Код: plaintext
std::wstring szCNN = ... 
- далее по тексту :-)
...
Рейтинг: 0 / 0
09.08.2007, 15:02:33
    #34717304
Алексей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема получения свойства объекта DataLink->ConnectionString
не помогает......
понимаю что не правильно обрабатываются строки, но непойму где......
...
Рейтинг: 0 / 0
09.08.2007, 15:23:06
    #34717391
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема получения свойства объекта DataLink->ConnectionString
Код: plaintext
1.
2.
3.
wchar_t * szCNN = new wchar_t [wcslen(pConn->ConnectionString) +  1 ];
wcscpy(szCNN,pConn->ConnectionString);
cout << szCNN;
...
Рейтинг: 0 / 0
09.08.2007, 15:23:53
    #34717395
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема получения свойства объекта DataLink->ConnectionString
не забываем сделать delete[] szCNN; когда необходимость в нём отпадёт
...
Рейтинг: 0 / 0
09.08.2007, 15:34:07
    #34717448
Алексей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема получения свойства объекта DataLink->ConnectionString
Не получается.....
Выдает адрес, либо почемуто 80
...
Рейтинг: 0 / 0
09.08.2007, 15:54:06
    #34717533
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема получения свойства объекта DataLink->ConnectionString
Код: plaintext
cout.write(szCNN,wsclen(szCNN);
- ?
...
Рейтинг: 0 / 0
09.08.2007, 15:54:49
    #34717536
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема получения свойства объекта DataLink->ConnectionString
ну и скобок правильное количество ;)
...
Рейтинг: 0 / 0
09.08.2007, 16:10:42
    #34717611
Алексей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема получения свойства объекта DataLink->ConnectionString
получил 4 белых прямоугольничка........
что то не получается ничего.......
...
Рейтинг: 0 / 0
09.08.2007, 17:18:33
    #34717880
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема получения свойства объекта DataLink->ConnectionString
читай хэлп про wchar_t, cout, ADODB::_ConnectionPtr, ConnectionString, смотри в дебаггере, что хранится в szCNN
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / проблема получения свойства объекта DataLink->ConnectionString / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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