Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.20;
Скачать: CL | DM;

Вниз

Сравнение с 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
1-64083
Мыш
2003-03-10 07:09
2003.03.20
RxRichedit


14-64347
Sasha000
2003-03-05 09:43
2003.03.20
Подскажите где моно взять продвинутый StringGrid, токо бесплатный


14-64361
Vint
2003-03-05 11:12
2003.03.20
Тату ваще офигели!


8-64231
aaZ
2002-12-07 17:04
2003.03.20
TjpegImage


3-64039
AlexNord
2003-02-26 01:35
2003.03.20
DBRichEdit