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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Alex Ermakov
0 / 0 / 0
Регистрация: 26.12.2007
Сообщений: 4
#1

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

26.12.2007, 16:09. Просмотров 996. Ответов 3
Метки нет (Все метки)

Народ помогите!
Зашел в тупик, как не бьюсь, ну никак VC не хочет
писать в мемо > 256 b. Делаю визардом простое приложение
с БД (ODBC), кидаю Edit и пытаюсь вбить кучу bytes.
Что за ограничение такое, будь оно ладно.....
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2007, 16:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись в мемо поле (mdb) > 256 byte в VC (C++):

Запись в файл тхт из мемо - C++
Срочно товарищи!!!! помогите! Нужно из memo записывать текст в файл тхт(название которого ты сам вводишь в edit). И чтобы при повторной...

Как вывести записей(строк) таблици базы данных mdb в мемо, в цикле for? - Delphi БД
Подскажите пожалуйста, как сделать выборку по определенным полям таблици, и вывести результат в memo? Пробою вот так, но почему-то...

Поле мемо - Delphi
Привет, как сделать так чтобы выводимый результат в поле мемо выводился построчно.. ибо когда вывожу результат, (там просто двух значные...

поле МЕМО - MS Access
как в форму вставить поле MEMO?? или какое вместо него можно ??

мемо-поле - Delphi
Здраствуйте всем!! у меня вот такая задачка-- нужно сделать следующее(в делфи)!! Загрузить в мемо-поле содержимое текстового файла и...

Поле Галуа из 256 элементов (умножение) - Алгебра
Здравствуйте. В универе задали реализовать умножение в поле Галуа из 256 элементов. Прочёл статью Касперского о кодах Рида-Соломона, в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
pwa
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 35
26.12.2007, 19:59 #2
На мой взгляд, возможные проблемы:
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;
}
0
Alex Ermakov
0 / 0 / 0
Регистрация: 26.12.2007
Сообщений: 4
27.12.2007, 08:33  [ТС] #3
Если не сложно, можно ссылочку на пример из MSDN.
Спасибо за ответ.
0
pwa
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 35
27.12.2007, 09:29 #4
Пример в описании функции SQLPutData (MSDN April 2000)
(Platform SDK -> Data Access Service -> MDAC SDK
->Microsoft ODBC -> ODBC reference -> Part 4 -> Chapter 21 -> SQLPutData)

Пример в MSDN описывает возможность записи данных 'на лету',
когда еще не известна длина данных.
Мой пример работает с известной длиной.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2007, 09:29
Привет! Вот еще темы с ответами:

Нельзя преобразовать тип function(a: byte;b: byte): byte к integer (Списки) - Pascal ABC
Создать список из целых чисел.Поменять в списке местами максимальный и минимальный элементы Проблемы c процедурами Pos и Chang: пос...

Открыть поле МЕМО - MS Access
Снова нужна ваша помощь. В ленточной форме отображается не большой кусок данных поля МЕМО, как сделать открытие полного материала в новой...

Ассеss и поле МЕМО - Delphi БД
У меня проблема - при занесении в Ассеss поля МЕМО через DM1.ins.ParamByName('text1').AsMemo:=Memo10.Lines.Text; выдает &quot;Драйвер...

Шрифты в Мемо поле - MS Access
Можно ли изменять стиль текста внутри Мемо поля?? Нужно в тексте что-то выделять жирным, что-то курсивом. Если это возможно, подскажите.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.12.2007, 09:29
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru