Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Очень странная проблемка с добавлением в базу dbf (http://forum.oszone.net/showthread.php?t=191462)

Ригадон 17-11-2010 12:00 1544658

Очень странная проблемка с добавлением в базу 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; /Ошибка выдается именно после этой команды/

LilLoco 17-11-2010 13:18 1544731

Нужно перевести таблицу в режим вставки

Код:

Form2.Table2.Insert;
//Что то вставляем
Form2.Table2.Post;


Ригадон 17-11-2010 13:47 1544763

Append и Insert одно и тоже за исключением того что Апенд добавляет в конец таблицы сразуже без перемещениия позиции и не создает индекс насколько я знаю...
Инсерт тоже пробЫвал ПС такиеже ошибки... :))

LilLoco 17-11-2010 14:29 1544800

Ошибка будет даже на строке

Код:

Form2.Table2.ReadOnly:=false;
не получится выполнить операцию на ОТКРЫТОЙ таблице!

Сначала закройте таблицу, поставьте свойство readonly в false, откройте таблицу, вставляйте!

Ригадон 17-11-2010 15:16 1544849

Тут согласен... :)
Теперь появилась следующая ошибка: Raised exception class EDBEngine error with message "General SQL error"

LilLoco 17-11-2010 15:30 1544869

Цитата:

Цитата Ригадон
Raised exception class EDBEngine error with message "General SQL error" »

В каком месте то появилась ошибка?

Ригадон 17-11-2010 15:34 1544876

Точно также на посте...

LilLoco 17-11-2010 15:42 1544885

Попробуйте для начала не все поля вносить а только одно, и посмотрите на результат!

Ригадон 17-11-2010 15:54 1544894

Form2.Table2.FieldByName('Info').AsString:=Form4.Memo1.Lines.Text;
проблема вот здесь вот... Остальные поля добавляются без проблем...

LilLoco 17-11-2010 16:14 1544924

Поэтому и попросил чтобы вы попробовали не все записи а только одну! А какой тип данных в поле Info ? И почему вносите не
Код:

Form4.Memo1.Text
а
Код:

Form4.Memo1.Lines.Text
???

Ригадон 17-11-2010 16:19 1544929

Именно просто этот вариант остался вносил и мемо.техт таже ошибка....
просто в данный момент именно эта строка в коде :)
ПС Мемо.текст таже фича...
В это поле не вносится ничего почемуто...
поле в таблице крайнее правое... длинна 255 тип как и все предыдущие текстовый...

LilLoco 17-11-2010 16:22 1544938

Цитата:

Цитата LilLoco
А какой тип данных в поле Info в таблице? »


Ригадон 17-11-2010 16:26 1544941

Character такой же как и в предыдущих полях единственное что его длинна 255 символов тоесть максимум...
Жесть поставил длинну 254 и все пошло...

LilLoco 17-11-2010 18:41 1545070

То есть теперь все работает?

opel431 17-11-2010 19:00 1545093

Цитата:

Цитата Ригадон
Жесть поставил длинну 254 и все пошло... »

А для memo запись в строку возможно вглядит так 0 - 254 + перевод строки.

Цитата:

Цитата Ригадон
Character такой же как и в предыдущих полях единственное что его длинна 255 символов тоесть максимум.. »

Но ведь можно использовать M (Memo) - Все символы кодовой страницы OEM.

Ригадон 18-11-2010 10:08 1545482

Мемо не причем...
Я изменил в структуре таблицы количество символов в поле и все пошло...
:o

opel431 18-11-2010 12:58 1545605

Цитата:

Цитата Ригадон
Мемо не причем... »

Не знаю, уважаемый Ригадон.
Просто при копировании из memo всегда последним символом добавляется #13#10, т.е. перевод строки.

Ригадон 18-11-2010 17:09 1545764

Ну это я понимаю но когда я вставляю например в поле из 255 знаком допустим "123456789" из мемо и добавляется #13#10 ну это никак не катит на то чтобы была такая ошибка... :)
Так что это не причем переполнение поля не происходило...


Время: 17:18.

Время: 17:18.
© OSzone.net 2001-