powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / проблема получения свойства объекта DataLink->ConnectionString
14 сообщений из 14, страница 1 из 1
проблема получения свойства объекта DataLink->ConnectionString
    #34716854
Demen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброе время суток

Столкнулся со следующей проблемой:есть код, который вызывает объект 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
проблема получения свойства объекта DataLink->ConnectionString
    #34717089
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Строка наверное в юникоде, а после ее записи в char [] она начинает выводиться как ANSI.

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

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

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

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

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


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


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