![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| kross |
|
|||
|
Unregistered |
Господа, вот у меня такая же ошибка выскакивает при попытке записать
через поток содержимое RichEdit в базу(MSSQL2000) в поле типа Image. procedure TForm1.SpeedButton3Click(Sender: TObject); var bs: TADOBlobStream; begin bs:= Nil; with ADOQuery1 Do try close; open; edit; bs:= TADOBlobStream.Create( TBlobField(FieldByName('wordText')), bmwrite ); Richedit1.plaintext := false; Richedit1.Lines.Savetostream(bs); post; finally bs.free; close; end; end; на post выдает выдается сообщение ADOQuery:DataSet not in edit or insert mode. Перерыл весь интернет, но... с ADO это первое знакомство и понемного приходит разочарование. не дайте пропасть. С уважением... |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Cashey
Это решает проблему ошибку(т.е. она не выскакивает) но записи в базу не происходит т.к. база не в режиме редактирования и естественно IF есть false и команда post обходится. Может где надо в настройках самого MSSQL пошариться? |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
если база не буферизированная, то сохранение может происходить автоматически, поэтому метод пост применяется к уже сохраненой базе и генерится ошибка.
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Serggggg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 12.12.2003 Где: Донецк, Украина Репутация: нет Всего: нет |
Знакомая проблема, только у меня не записывалось текстовое поле + я работал с Oracle. Как поведёт себя DataSet через ADO с MSSQL - точно сказать не могу.
Я делал так: 1. Переход на нужную запись (типа FindKey или GotoKey). 2. Table1.Edit 3. Table1.FieldByName('Field1').As....... :=#########; 4. Table1.Post Или же после Edit внеси ВСЕ изменения. А потом, как и было отмечено, используй if Modified then Post. Попробуй, однако за слаженную работу такого метода через ADO с MSSQL я не могу отвечать. --------------------
C уважением, Serggggg. |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Набор даных возвращаемый TADOQuery нельзя редактировать напрямую (на самом деле можно, но при соблюдении определенных условий).
Если хотите чтобы Ваш пример заработал, используйте TADOTable. Вот и весь ответ. (Кстати ADO здесь ни при чем. Если бы Вы использовали и BDEшные компоненты, выскочила такая же ошибка) -------------------- |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |