How do I check input data from edits that will be posted to a database with delphi? -
i have written database application delphi7. im using adodatabase. using edits input user program doesnt work, checks input data never posts it. have 3 tables name clients receivers , packages, please me. here code:
'procedure tnewdel.button1click(sender: tobject); var name, name2,lname,lname2, smessage,date, date2, clnum,packnum, rcnum, email, email2, address, address2, cell, cell2, cellnum, cellnum2, price :string; k, c, c2,countnum, weight, distance, size :integer; rprice:real; ccheck:char; begin date:= floattostr(datetp.date); countnum:= 0; countnum:=countnum + 1; name:= edtname.text; lname:= edtlname.text; smessage:= ' wrong input: '; address:= edtadd.text; email:= edtemail.text; cell:= edtcellnum.text; name2:=edtname2.text; lname2:=edtlname.text; cellnum2:=edtcellnum.text; address2:= edtadd2.text; email2:= edtemail2.text; cell2:= edtcellnum2.text; weight:=sedweight.value; distance:= seddist.value; size:= sedsize.value; k := 1 4 begin date2:= date2+date[k]; end; if lname= '' begin showmessage(smessage+ 'last name'); end else begin if name= '' begin showmessage(smessage+ 'name'); end else begin if address= '' begin showmessage(smessage+ 'address'); end else begin if email= '' begin showmessage(smessage+ 'e-mail'); end else begin if cell = '' begin showmessage(smessage+ 'cell phone number'); end else begin if cell2 = '' begin showmessage(smessage + 'receiver cell number'); end else begin if name2 = '' begin showmessage(smessage + 'receiver name'); end else begin if lname2 = '' begin showmessage(smessage + 'receiver last name'); end else begin if address2 = '' begin showmessage(smessage + 'receiver address'); end else begin if email2 = '' begin showmessage(smessage + 'receiver cell number'); end else begin if distance='' begin showmessage(smessage+ 'distance'); end else begin if size='' begin showmessage(smessage+ 'size'); end else begin if weight > 35 begin showmessage('package heavy'); end else begin if distance <= 150 begin rprice:= distance*3.5; price:= floattostr(rprice); end else begin if distance >150 begin rprice:= (150*3.5)+((distance-150)*3.5*2); price:=floattostr(rprice); end else begin if distance = 0 begin showmessage(smessage + 'distance'); end else begin ccheck:= 't'; end; end; if ccheck = 't' begin c:= 2 10 begin cellnum:= cellnum+ cell[c]; end; cellnum:= '+27' + cellnum; c2:= 2 10 begin cellnum2:= cellnum2 +cell2[c2]; end; cellnum2:= '+27' + cellnum2 ; clnum:= 'cl'+ name[1]+lname[1] + date2 + inttostr(countnum); packnum:='pk' + name[1]+name2[1]+ date2; rcnum:= 'rc'+ name2[1]+lname2[1]+ date2; adotable1.edit; adotable1package_number.value:= packnum; adotable1client_number.value:=clnum; adotable1name:=name; adotable1last_name.value:= lname; adotable1address.value:=address; adotable1e_mail.value:=email; adotable1cell_number.value:=cellnum; adotable1date.value:=date; post; end; adotable2 begin insert; fieldbyname('package_number').value:= packnum; fieldbyname('receiver_number').value:=rcnum; fieldbyname('name').value:=name2; fieldbyname('last_name').value:=lname2; fieldbyname('address').value:=address2; fieldbyname('e_mail').value:=email2; fieldbyname('date').value:=date; post; end; adotable3 begin insert; fieldbyname('price').value:= price; fieldbyname('package_number').value:= packnum; fieldbyname('client_number').value:= clnum; fieldbyname('receiver_number').value:=rcnum; fieldbyname('weight').value:= weight; fieldbyname('size').value:=size; fieldbyname('price').value:= price; fieldbyname('distance').value:= distance; post; end; end; end; end; end; end; end; end; end; end; end; end; end; end; end; end; end; i know might not best way so, biggener thats why asking. thanks.
i like
function checkvalues(const avalue, aconst: array of string): string; var a_index: integer; a_const: string; begin result := ''; assert(high(avalue)= high(aconst), 'programmer error checkvalues: value , const should have same amount of elements'); a_index := low(avalue) high(avalue) begin if (avalue[a_index] = '') begin a_const := aconst[a_index]; if result = '' result := a_const else result := result + ', ' + a_const; end; end; end; procedure tform.allowsave; var a_value: string; begin if finit begin a_value := checkvalues([cbchain.text, edname.text, edtaxid.text, edcustomerno.text, reversalwindow.text, editaddress1.text, editcity.text, cbstate.text, editzip.text, editphone.text, editfax.text, editemail.text, cbpricingtypelu.text], ['chain','name', 'tax id', 'customer number', 'reversal window', 'address1', 'city', 'state', 'zip', 'phone', 'fax', 'email','pricing type']); btnsave.enabled := a_value = ''; if btnsave.enabled begin statusbar1.simpletext := ''; if not (qryedit.state in [dsinsert, dsedit]) qryedit.edit; end else statusbar1.simpletext := 'missing: ' + a_value; end; end;
Comments
Post a Comment