Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];

Вниз

запрос в Query   Найти похожие ветки 

 
rosl   (2003-07-03 04:51) [0]

Уважаемые МАСТЕРА!!!
помогите со вставкой данных.
подключил *.dbf с помощью Query,
поля name, mes1, mes_it, fin_n, zach_n, fin_p, zach_p
но в grid нужны ещё суммы строк fin_n, zach_n и fin_p, zach_p и отклонение mes_it - (fin_n + zach_n)
поэтому запрос в Query выглядит так:

select name, mes1, mes_it, fin_n, zach_n, fin_n + zach_n, fin_p, zach_p, fin_p + zach_p, mes_it - (fin_n + zach_n)
from baza\main1.dbf

к Query подключил UpdateSQL, но при добавлении новой строчки выдаётся ошибка:
"invalid floating point operation"
вставляю данные так:
Query.Insert;
Query.FieldByName("name").AsString:=form3.DBLookupComboBox1.KeyValue;
Query.FieldByName("mes1").AsString:=form3.DBLookupComboboxEh1.KeyValue;
Query.FieldByName("mes_it").AsString:=form3.Edit1.Text;
Query.FieldByName("fin_p").AsString:=form3.Edit2.Text;
Query.FieldByName("zach_p").AsString:=form3.Edit3.Text;
Query.FieldByName("fin_n").AsString:=form3.Edit4.Text;
Query.FieldByName("zach_n").AsString:=form3.Edit5.Text;
Query.Post;
Query.ApplyUpdates;


 
ЮЮ   (2003-07-03 05:53) [1]

>при добавлении новой строчки выдаётся ошибка:
"invalid floating point operation"

В каком операторе?
Одно из опасных мест:

>Query.FieldByName("fin_p").AsString:=form3.Edit2.Text;

Для такого кода надо быть совершенно точно быть уверенным, что в form3.Edit2.Text находится информация, которая безошибочно будет преобразована к типу поля. Безпаснее было бы, например, так

Query.FieldByName("fin_p").AsFloat := EditTextToFloat(form3.Edit2);

function EditTextToFloat(Edit: TEdit): double;
begin
// а здесь можно проанализировать Edit.Text,
// при необходимости возбудить исключение, установить фокус на
// ошибочный символ в Edit.Text и т.д.
// простейший вариант:
try
Result := StrToFloat(Edit.Text);
except
Edit.SetFocus;
raise
end;
end;





 
ЮЮ   (2003-07-03 06:01) [2]

Во-вторых, вычисляемые в запросе поля для новых и исправленных записей никто не пересчитает до переоткрытия запроса, так что их тоже надо 1)пересчитать, исключив из Updtate и Insert предложений UpdateSQL-я 2) или сделать эти поля Calculated и рассчитывать на клиенте



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.44 MB
Время: 0.007 c
1-77909
XobBIT
2003-07-09 19:02
2003.07.24
ListView1 и память...


1-77945
3APA3A
2003-07-08 19:20
2003.07.24
Опять Excel...


1-77900
mdsns
2003-07-10 12:53
2003.07.24
Действие при закрытии


3-77763
Shtock
2003-06-30 12:34
2003.07.24
проблема со скриптом и заменой символов в FastReport


9-77708
BANick
2003-01-27 20:14
2003.07.24
Opengl. Помогите с прозрачностью





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский