Показать полную графическую версию : Очень странная проблемка с добавлением в базу dbf
В общем ситуация такая при записи в таблицу а именно Table.Рost выдает ошибку Cannot perfom this operation on an open DataSet
в моем случае датасетом выступает ТТабле при этом в данном случае она открыта и своиство рид онли в фелсе... Если ее закрываю то говорит что не может записать так как она закрыта... :))
Код:
Form2.Table2.Active:=true;
Form2.Table2.ReadOnly:=false;
Form2.Table2.Append;
Form2.Table2.FieldByName('INN').AsString:=Form3.Label4.Caption;
Form2.Table2.FieldByName('FIO').AsString:=Form3.Label2.Caption;
Form2.Table2.FieldByName('Manager').AsString:=Manager;
Form2.Table2.FieldByName('dwrite').AsString:=DateToStr(now)+' '+TimeToStr(Time);
Form2.Table2.FieldByName('Info').AsString:=Form4.Memo1.Lines.Text;
Form2.Table2.FieldByName('Dog').AsString:=dog;
Form2.Table2.FieldByName('Ddog').AsString:='';
Form2.Table2.Post; /Ошибка выдается именно после этой команды/
Нужно перевести таблицу в режим вставки
Form2.Table2.Insert;
//Что то вставляем
Form2.Table2.Post;
Append и Insert одно и тоже за исключением того что Апенд добавляет в конец таблицы сразуже без перемещениия позиции и не создает индекс насколько я знаю...
Инсерт тоже пробывал ПС такиеже ошибки... :))
Ошибка будет даже на строке
Form2.Table2.ReadOnly:=false;
не получится выполнить операцию на ОТКРЫТОЙ таблице!
Сначала закройте таблицу, поставьте свойство readonly в false, откройте таблицу, вставляйте!
Тут согласен... :)
Теперь появилась следующая ошибка: Raised exception class EDBEngine error with message "General SQL error"
Raised exception class EDBEngine error with message "General SQL error" »
В каком месте то появилась ошибка?
Попробуйте для начала не все поля вносить а только одно, и посмотрите на результат!
Form2.Table2.FieldByName('Info').AsString:=Form4.Memo1.Lines.Text;
проблема вот здесь вот... Остальные поля добавляются без проблем...
Поэтому и попросил чтобы вы попробовали не все записи а только одну! А какой тип данных в поле Info ? И почему вносите не Form4.Memo1.Text а Form4.Memo1.Lines.Text ???
Именно просто этот вариант остался вносил и мемо.техт таже ошибка....
просто в данный момент именно эта строка в коде :)
ПС Мемо.текст таже фича...
В это поле не вносится ничего почемуто...
поле в таблице крайнее правое... длинна 255 тип как и все предыдущие текстовый...
А какой тип данных в поле Info в таблице? »
Character такой же как и в предыдущих полях единственное что его длинна 255 символов тоесть максимум...
Жесть поставил длинну 254 и все пошло...
То есть теперь все работает?
Жесть поставил длинну 254 и все пошло... »
А для memo запись в строку возможно вглядит так 0 - 254 + перевод строки.
Character такой же как и в предыдущих полях единственное что его длинна 255 символов тоесть максимум.. »
Но ведь можно использовать M (Memo) - Все символы кодовой страницы OEM.
Мемо не причем...
Я изменил в структуре таблицы количество символов в поле и все пошло...
:o
Мемо не причем... »
Не знаю, уважаемый Ригадон.
Просто при копировании из memo всегда последним символом добавляется #13#10, т.е. перевод строки.
Ну это я понимаю но когда я вставляю например в поле из 255 знаком допустим "123456789" из мемо и добавляется #13#10 ну это никак не катит на то чтобы была такая ошибка... :)
Так что это не причем переполнение поля не происходило...
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC