Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сохранение текста в поле таблицы 
:(
    Опции темы
kosta
Дата 10.5.2005, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 19.3.2005

Репутация: нет
Всего: нет



Помогите плз, уже скока мучаю и не знаю что делать((
тема такая: у меня есть бд на аксэсе, там есть в одной из таблиц поле типа мемо. так вот в него и надо сохранять текст.
Для конекта с бд создаю пользовательский днс в одбц администраторе. А в самих делфях простой запрос на обновление таблицы. Выглядит все так:

Код

 with qrUpdateTask do
  begin
  if Active then Close;


  Params[0].AsInteger:=DiscCode;
  Params[1].AsInteger:=ThemeCode;
  Params[2].AsInteger:=strtoint(edtDificultyCode.Text);
  Params[3].AsMemo:=memoTaskText.Text;
  Params[4].AsInteger:=answer;

  ExecSQL;

  end;




а сам sql запрос выглядит вот так :

INSERT INTO Задание (id_disc, id_theme, КодСложности, ТекстЗадания, Ответ)
VALUES ( :parDisc, :parTheme, :parCode, :parText, :parAnswer);

причем параметр Params[3] типа ftMemo и ptInput

так вот када выолняеться строка ExecSQL мне выкидываеться такая вот ошибка:

project Project1.exe raised exeption class EDBEngineError with message 'general SQL error'.
[Microsoft][драйвер ODBC Microsoft Access]Усечение данных строки справа (null)

причем ошибка вылазит не всегда.

Подскажите еси кто понимает в чем дело
PM MAIL   Вверх
Bes
Дата 11.5.2005, 05:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



А что за база?
PM MAIL   Вверх
Петрович
Дата 11.5.2005, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 6
Всего: 55



А каков размер поля ТекстЗадания в БД?


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
kosta
Дата 11.5.2005, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 19.3.2005

Репутация: нет
Всего: нет



база аксесовская,
размер поля не наю какой(тип memo), но это не имеет значение потому что глючит даже при количестве символов <256
PM MAIL   Вверх
SPrograMMer
Дата 11.5.2005, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Спамер :)
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 5.11.2004
Где: Краснодар

Репутация: 1
Всего: 6



Цитата(kosta @ 10.5.2005, 23:49)
Усечение данных строки справа

А может попробовать не далать запрос, а через методы Edit...Post, скорость, правда наверное упадет, надо ведь будет найти нужную запись, прежде чем изменять её... smile


--------------------
животное = зверь
законченный гентушник
PM MAIL ICQ Jabber   Вверх
kosta
Дата 11.5.2005, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 19.3.2005

Репутация: нет
Всего: нет



SPrograMMer
а поточнее про едит и пост мона?
PM MAIL   Вверх
SPrograMMer
Дата 11.5.2005, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Спамер :)
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 5.11.2004
Где: Краснодар

Репутация: 1
Всего: 6



Цитата(kosta @ 11.5.2005, 12:17)
поточнее про едит и пост мона

мона smile
Прежде тебе надо таблю завести... Т е Table
А после нечто-вроде:
Код

Table1.Active:=True; // делаем её активной
While Not Table1.Eof Do Begin  // пока не просмортим все записи...
  If Table1.FieldByName('id_disc').AsInteger=DiscCode Then   // нашли запись
    Begin 
       Table1.Edit;  //переводим таблицу в режим редактирования
       Table1.FieldByName('id_theme').AsInteger:=ThemeCode; // заносим данные
       .....   //каждое в свое поле
       Table1.FieldByName('ТекстЗадания').AsMemo:=memoTaskText.Text;
       // после запоминаем сделанные изменения:
       Table1.Post;
       Break; // это для досрочного выхода из цикла
    End;
  Table1.Next  // а коли не нашли запись переходим к следующей
End 


Это сообщение отредактировал(а) SPrograMMer - 11.5.2005, 16:59


--------------------
животное = зверь
законченный гентушник
PM MAIL ICQ Jabber   Вверх
kosta
Дата 11.5.2005, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 19.3.2005

Репутация: нет
Всего: нет



ясна, сенк, попробую
PM MAIL   Вверх
SPrograMMer
Дата 11.5.2005, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Спамер :)
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 5.11.2004
Где: Краснодар

Репутация: 1
Всего: 6



да, не забудь в конце сделать:
Код

table1.Active:=False; // закрыть таблицу


Забыл чо-то... smile сразу сказать


--------------------
животное = зверь
законченный гентушник
PM MAIL ICQ Jabber   Вверх
kosta
Дата 12.5.2005, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 19.3.2005

Репутация: нет
Всего: нет



попробовал я и получилась вот такая трабла:
оказалось, что запись Table1.FieldByName('ТекстЗадания').AsMemo:=memoTaskText.Text; невозможна, так как нет проперти AsMemo =((

что делать ваабще не знаю smile

Добавлено @ 01:38
написал как AsString и все заработало smile
были бы знакомы, выстовил бы пива smile
PM MAIL   Вверх
kosta
Дата 12.5.2005, 02:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 19.3.2005

Репутация: нет
Всего: нет



маленькая поправка, вместо Table1.Edit нада писать Table1.Insert, иначе будет пихать все время в один и тот же кортеж
PM MAIL   Вверх
SPrograMMer
Дата 12.5.2005, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Спамер :)
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 5.11.2004
Где: Краснодар

Репутация: 1
Всего: 6



Цитата(kosta @ 12.5.2005, 02:09)
вместо Table1.Edit нада писать Table1.Insert

у тебя изначально баз запрос:

Цитата(kosta @ 10.5.2005, 23:49)

INSERT INTO Задание (id_disc, id_theme, КодСложности, ТекстЗадания, Ответ)
VALUES ( :parDisc, :parTheme, :parCode, :parText, :parAnswer);

а в нем...


smile smile smile smile а чего это я действительно подумал что у тебя UpDate....


так что ты прав
Цитата(kosta @ 12.5.2005, 02:09)
Table1.Edit нада писать Table1.Insert


Добавлено @ 14:38
да в таком случае есчо и Append применить моно вместо Insert`а

Добавлено @ 15:13
smile
Цитата(kosta @ 12.5.2005, 01:34)
были бы знакомы, выстовил бы пива

smile неполучилось бы... имхо не употребляю.... smile

Это сообщение отредактировал(а) SPrograMMer - 12.5.2005, 15:35


--------------------
животное = зверь
законченный гентушник
PM MAIL ICQ Jabber   Вверх
SPrograMMer
Дата 12.5.2005, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Спамер :)
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 5.11.2004
Где: Краснодар

Репутация: 1
Всего: 6



smile

Это сообщение отредактировал(а) SPrograMMer - 12.5.2005, 15:33


--------------------
животное = зверь
законченный гентушник
PM MAIL ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0597 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.