Форум программистов, компьютерный форум CyberForum.ru

Запись в мемо поле (mdb) > 256 byte в VC - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ошибка 'CloseCollection g_coolCollection.Open(collectionname) dwError=7' при установке MSDN http://www.cyberforum.ru/cpp-beginners/thread463764.html
При установке msdn98 в самом конце появляется ошибка : 'CloseCollection g_coolCollection.Open(collectionname) dwError=7' и установка не заканчивается корректно. Не знаете ли как с этим бороться?
C++ Хочу писать проги под W2k на С++ Люди, подскажите, каким макаром можно писать проги под W2k на С++? Я попробовал установить визуал студию 6, но на простых примерах с выводом информации матерится по страшному :-(((( Если можно подкиньте простой примерчик с вводом и выводом информации. За ранее благодарен. http://www.cyberforum.ru/cpp-beginners/thread463759.html
VC+ODBC+mdb+memo+ C++
Проблема такая. Читаю Clipperовский dbt файл в массив строк (CStringArray), имеется файл mdb с таблицей содержащей memo поле, пытаюсь писать туды... вылетаю.... Для наглядности кусок кода. Примерно так. ... file.Seek( NumBlock * 512, CFile::begin ); int i = 0; do
Как продебугерить программы, подключающие библиотеки MATLAB C++? C++
Не удается продебугерить прграммы подключающие библиотеки MATLAB C++,компиляцию не проходят даже samples. Компиляция через mbuild и командную строку в Borland проходит без проблем.
Visual C++ Как сделать диалог главным окном? http://www.cyberforum.ru/cpp-beginners/thread463687.html
я новичок в VC... (но хорошо знаю CBuilder) как сделать диалог главным окном кроме этого способа: BOOL InitInstance(){ //... CMyDlg dlg; m_pMainWnd = &dlg; //... dlg.DoModal();
C++ Работа с Winword - где найти MSWord9.h? В MSDN есть код _Application objWord; // Convenient values declared as ColeVariants. COleVariant covTrue((short)TRUE), covFalse((short)FALSE), covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); // Get the IDispatch pointer and attach it to the objWord object. if (!objWord.CreateDispatch("Word.Application")) подробнее

Показать сообщение отдельно
pwa
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 35
26.12.2007, 19:59     Запись в мемо поле (mdb) > 256 byte в VC
На мой взгляд, возможные проблемы:
1. Правильно определить тип поля. Например, для Access это image:
CREATE TABLE tbl(Id integer, Data image)

2. Специфический алгоритм записи. См. работающуюю ф-ю, писал ее по
примеру из MSDN:
//------------------------------------------------------------------
short __stdcall ODBC_PutLongData(qodbc *q, char *cmd, char *fname) {
SQLINTEGER cbPhotoParam;
SQLPOINTER pToken;
SQLINTEGER cbLen;
SQLCHAR Buf[20000];
FILE *fp;
SQLRETURN hRes;
long len;
char ErrTxt[256];
char FName[256];

sprintf(FName, '%s\Temp.dat', PattPathVal);
PackFile(fname, FName, ErrTxt);

if ((fp=fopen(FName, 'rb'))==NULL) {
sprintf(q->ErrText, 'ODBC_PutLongData(): Error while open %s', FName);
return -1;
}
fseek(fp, 0, SEEK_END);
len = ftell(fp);
fseek(fp, 0, SEEK_SET);

q->nResult = SQLAllocHandle(SQL_HANDLE_STMT, q->hdbc, &(q->hstmt));
q->nResult = SQLPrepare(q->hstmt, cmd, SQL_NTS);
if (q->nResult == SQL_SUCCESS || q->nResult == SQL_SUCCESS_WITH_INFO) {
cbPhotoParam = SQL_LEN_DATA_AT_EXEC(len);
q->nResult = SQLBindParameter(q->hstmt, 1, SQL_PARAM_INPUT,
SQL_C_BINARY, SQL_LONGVARBINARY,
len, 0, (SQLPOINTER) 1, 0, &cbPhotoParam);
q->nResult = SQLExecute(q->hstmt);
while (q->nResult == SQL_NEED_DATA) {
if ((q->nResult=SQLParamData(q->hstmt, &pToken)) == SQL_NEED_DATA) {
// if ( (cbLen=fread(Buf, 1, sizeof(Buf), fp)) >0 ) {
// hRes = SQLPutData(q->hstmt, Buf, cbLen);
// }
// else
// break;
while ( (cbLen=fread(Buf, 1, sizeof(Buf), fp)) >0 ) {
hRes = SQLPutData(q->hstmt, Buf, cbLen);
len -= cbLen;
if (len<=0)
break;
}
}
}
}
if (q->nResult != SQL_SUCCESS)
DisplayError(q, SQL_HANDLE_STMT, q->hstmt);
fclose(fp);
return q->nResult;
}
 
Текущее время: 12:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru