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

Вниз

Сравнение с nil??? Как узнать, что в поле вообще несодер. значие   Найти похожие ветки 

 
Stenkz   (2003-03-03 07:40) [0]

Сравнение с nil??? У меня есть поле – например остаток по счёту. Как узнать, что в поле вообще не содержится какое-нибудь значение? Просто на это поле ссылается вычисляемое поле и при попытке –вылетает инвалид вариант конвершен…


 
V-A-V   (2003-03-03 07:44) [1]

If Field.IsNull then тра-та-та...


 
gek   (2003-03-03 07:46) [2]

for i:= 0 to FieldCount -1 do
if (Fields[i].DataType = ftFloat)then
if (Fields[i]).IsNull then (Fields[i]).AsFloat:=0;


 
Stenkz   (2003-03-03 08:11) [3]

Вот так пробовал, не работает...

If и ...
TDep.Fields.Fields["OVozn"].Isnull
TDep.Fields.Fields["25"].Isnull
TDep.Fields.Fields["25"].AsFloat.Isnull
(TDep.Fields["25"].AsFloat).Isnull
TDep.Fields["25"].AsFloat.Isnull
(TDep.FieldValues["OProc"]).Isnull

Как правильно?



 
gek   (2003-03-03 09:07) [4]

Приведи полный код, тут у тебя ерунда написана


 
Stenkz   (2003-03-03 09:36) [5]

begin
If TDep.Fields.Fields["OVozn"].Isnull
then TDep.FieldValues["OVozn"]:=0;
TDep.FieldByName("Skzt").Value:=TDep.FieldValues["Summ"]*TDep.FieldValues["Kurs"];
TDep.FieldByName("Vmkzt").Value:=TDep.FieldValues["Summ_VM"]*TDep.FieldValues["Kurs"];
TDep.FieldByName("Tkzt").Value:=TDep.FieldValues["Summ_P"]*TDep.FieldValues["Kurs"];
TDep.FieldByName("OVoznT").Value:=TDep.FieldValues["OVozn"]*TDep.FieldValues["Kurs"];
TDep.FieldByName("OProcT").Value:=TDep.FieldValues["OProc"]*TDep.FieldValues["Kurs"];
end;


 
gek   (2003-03-03 09:49) [6]


begin
with TDep do
begin
Edit;
If FieldByName("OVozn").Isnull then
FieldByName("OVozn").asInteger:=0;
FieldByName("Skzt").asFloat:=FieldByName("Summ").asFloat * FieldByName("Kurs").asFloat;
.....

post;
end;
end;


Естественно я не знаю типы полей поэттому и поставил Integer и Float


 
Stenkz   (2003-03-03 11:04) [7]

Нашёл... Вот так работает
If TDep.FieldByName("OProc").Isnull
then
begin
TDep.Edit;
TDep.FieldValues["OProc"]:=0;
TDep.Post;
end;


 
Stenkz   (2003-03-03 12:58) [8]

Есть проблемма - так как данный код стоит в обработчике OnCalcFields и есть ещё поля в которых не содержаться значения, то при переводе в режем edit, происходит зацикливание. Генерируется сообщение о том что запись заблокирована!!! Как это обьехать?


 
Соловьев   (2003-03-03 13:07) [9]

А нельзя это сделать, типа так:
update table
set OProc=0
where Oproc is NULL


 
Johnmen   (2003-03-03 13:12) [10]

При обращение к значению поля используй явное преобразование типов (TDep.FieldByName("OProc").AsInteger:=0;), и проблем с инвалид вариант конвершен… не будет.




 
Opuhshii   (2003-03-03 13:29) [11]

procedure TForm1.MyTableOnCalcFields(Sender:TObject);
begin
with TDataset(Sender) do begin
AutoCalcFields:=False;
{ Insert your Code here}
AutoCalcFields:=True;
end;
end;



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

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

Наверх





Память: 0.47 MB
Время: 0.009 c
3-63990
SkyN
2003-02-28 10:43
2003.03.20
Для знающих программу Folio и структуру их БД


1-64227
Leviathan
2003-03-09 16:57
2003.03.20
ValueListEditor


14-64316
LazorenkoX
2003-03-03 11:32
2003.03.20
Windows 2000 Professional - Сервер удалённого доступа.


3-64022
Kurt_
2003-03-01 15:01
2003.03.20
Не подскажите как в АДО фильтр на квери поставить типа name is N


6-64256
Jurgen
2003-01-29 07:55
2003.03.20
X.25





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский