Типы
От: NordSky Россия  
Дата: 04.02.10 07:40
Оценка:
Привет,кто нибудь может написать или кинуть ссылку на таблицу где есть соответсвие между типами MICROSOFT_SQL_SERVER
и типами,которые можно применять в OLE DB Customer Templates.
По-моему для varchar это TCHAR,а для tinyint — BYTE,нужно еще для image,datetime итд
Re: Типы
От: kvasya  
Дата: 04.02.10 08:25
Оценка:
Здравствуйте, NordSky, Вы писали:

NS>Привет,кто нибудь может написать или кинуть ссылку на таблицу где есть соответсвие между типами MICROSOFT_SQL_SERVER

NS>и типами,которые можно применять в OLE DB Customer Templates.
NS>По-моему для varchar это TCHAR,а для tinyint — BYTE,нужно еще для image,datetime итд

Type Indicators in a Microsoft SQL Server Provider
Re[2]: Типы
От: NordSky Россия  
Дата: 04.02.10 08:31
Оценка:
Здравствуйте, kvasya, Вы писали:

K>Здравствуйте, NordSky, Вы писали:


NS>>Привет,кто нибудь может написать или кинуть ссылку на таблицу где есть соответсвие между типами MICROSOFT_SQL_SERVER

NS>>и типами,которые можно применять в OLE DB Customer Templates.
NS>>По-моему для varchar это TCHAR,а для tinyint — BYTE,нужно еще для image,datetime итд

K>Type Indicators in a Microsoft SQL Server Provider





это я нашел,только не понял как имим пользоваться. В общем,Мне надо создать таюлицу типа

class CXXX
{
public:
    TCHAR m_x;          

    BEGIN_COLUMN_MAP( CXXX ) 
        COLUMN_ENTRY( 1,m_x )
    END_COLUMN_MAP()
};


в таблице есть еще типы image и datetime как мне их привязать к переменным в классе? какой тип данных использовать?
Для image я предполагаю нужно ISequentialStream,а вот для datetime
Re[3]: Типы
От: kvasya  
Дата: 04.02.10 09:13
Оценка:
Здравствуйте, NordSky, Вы писали:

NS>это я нашел,только не понял как имим пользоваться. В общем,Мне надо создать таюлицу типа


NS>
NS>class CXXX
NS>{
NS>public:
NS>    TCHAR m_x;          

NS>    BEGIN_COLUMN_MAP( CXXX ) 
NS>        COLUMN_ENTRY( 1,m_x )
NS>    END_COLUMN_MAP()
NS>};

NS>


NS>в таблице есть еще типы image и datetime как мне их привязать к переменным в классе? какой тип данных использовать?

NS>Для image я предполагаю нужно ISequentialStream,а вот для datetime

Это обширная тема, я все-таки рекомендовал бы обратиться к документации. MSDN вполне достаточно. В коде у тебя не совсем корректно, вот навскидку

create table dbo.Pictures
(
id int, 
description varchar(64),
bmp image,
)




class AnyImageContainterType
{
char *imageBuffer; // или все что угодно, что сочтешь нужным
};

class Pictures
{
DBTYPE_I4 _id;
DBTYPE_STR _description
AnyImageContainterType _bitmap;
public:

int getId() const;
string getDescription() const;
void DrawBitmapTo( HDC hdc, POINT pt );
};


Как-то так. Как все это дело раскрутить — надо все-таки читать OLE DB data access; И каждой тип отдельно изучать, засады в конвертации семо и овамо. Там и ATL всплывет и прочее и прочее.. И появятся конкретные вопросы
Re[3]: Типы
От: kvasya  
Дата: 04.02.10 09:30
Оценка:
Здравствуйте, NordSky, Вы писали:

NS>это я нашел,только не понял как имим пользоваться. В общем,Мне надо создать таюлицу типа


Вот нашел в исходниках какой-то код для примера:

        switch ( type )
        {
        case DBTYPE_GUID:
            return GuidToString( (BYTE *)m_pResultSet->GetValue( column ), result );
            break;
        case DBTYPE_BSTR:
            result = (WCHAR *)m_pResultSet->GetValue( column );
            break;
        case DBTYPE_STR:
            OutputDebugString( "DBTYPE_STR\n");
            DebugBreak();
            //result = (CHAR *)m_pResultSet->GetValue( column );
            break;
        case DBTYPE_WSTR:
            result = (WCHAR *)m_pResultSet->GetValue( column );
            break;
        case DBTYPE_IUNKNOWN:
        case DBTYPE_BYTES:
            return BytesToString( column, (BYTE *)m_pResultSet->GetValue( column ), result );
        case DBTYPE_NULL:
            result = L"NULL";
            break;
        default:
            return false;
        }
        return true;
Re[3]: Типы
От: kvasya  
Дата: 04.02.10 09:33
Оценка:
Здравствуйте, NordSky, Вы писали:

NS>это я нашел,только не понял как имим пользоваться. В общем,Мне надо создать таюлицу типа


И вот еще:

...
        BSTR stringValue;
        LCID localeId = MAKELCID( MAKELANGID( LANG_ENGLISH, SUBLANG_ENGLISH_US ) , SORT_DEFAULT);

        switch(type)
        {
        case DBTYPE_I2:
            VarBstrFromI2( *( (SHORT *)m_pResultSet->GetValue( column ) ), localeId, 0, &stringValue );
            break;
        case DBTYPE_I4:
            VarBstrFromI4( *( (LONG *)m_pResultSet->GetValue( column ) ), localeId, 0, &stringValue );
            break;
        case DBTYPE_I8:
            VarBstrFromI8( *( (LONG64 *)m_pResultSet->GetValue( column ) ), localeId, 0, &stringValue );
            break;
        case DBTYPE_R4:
            VarBstrFromR4( *( (FLOAT *)m_pResultSet->GetValue( column ) ), localeId, 0, &stringValue );
            break;
...
Re[4]: Типы
От: NordSky Россия  
Дата: 04.02.10 13:20
Оценка:
Здравствуйте, kvasya, Вы писали:

K>Здравствуйте, NordSky, Вы писали:


NS>>это я нашел,только не понял как имим пользоваться. В общем,Мне надо создать таюлицу типа


K>И вот еще:


K>
K>...
K>        BSTR stringValue;
K>        LCID localeId = MAKELCID( MAKELANGID( LANG_ENGLISH, SUBLANG_ENGLISH_US ) , SORT_DEFAULT);

K>        switch(type)
K>        {
K>        case DBTYPE_I2:
K>            VarBstrFromI2( *( (SHORT *)m_pResultSet->GetValue( column ) ), localeId, 0, &stringValue );
K>            break;
K>        case DBTYPE_I4:
K>            VarBstrFromI4( *( (LONG *)m_pResultSet->GetValue( column ) ), localeId, 0, &stringValue );
K>            break;
K>        case DBTYPE_I8:
K>            VarBstrFromI8( *( (LONG64 *)m_pResultSet->GetValue( column ) ), localeId, 0, &stringValue );
K>            break;
K>        case DBTYPE_R4:
K>            VarBstrFromR4( *( (FLOAT *)m_pResultSet->GetValue( column ) ), localeId, 0, &stringValue );
K>            break;
K>...
K>


Спасибо большое за помощь!! Буду разбираться
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.