@savkic
HVALA kralju
E sad me muci kako da odredim da li je naziiv jedinstven?
svaka tabela ima 3 polja koja moraju biti jedinstvena:ID,Sifafa,Naziv...prva 2 ssam uspeo da odresim bez greske,a 3. me zeza ...probao sam na sledece nacuine,ali mi puca grsku da ne postoji vrednost za sifru,jer kako ja kapiram on ne uzima da sifra ima vrednost
Code:
1.nacin
var
SQl,Naziv : String;
begin
Naziv := DBEdit2.Text;
sql := 'select * from t_drzave where naziv_drzave = ' + QuotedStr(Naziv);
sdsUnosIzmena.Close;
sdsUnosIzmena.DataSet.CommandText := Sql;
dmMain.SQLConn.StartTransaction(TD);
sdsUnosIzmena.Open;
dmMain.SQLConn.Commit(Td);
if sdsUnosIzmena.RecordCount = 0 then
begin
sdsUnosIzmena.Append;
sdsUnosIzmena.FieldByName('id').AsInteger := sp_Drzava_Gen_Id.Params[0].AsInteger;
sdsUnosIzmena.FieldByName('sifra_drzave').AsString := DBEdit1.Text;
sdsUnosIzmena.FieldByName('Naziv_Drzave').AsString := Naziv;
end;
end;
2.nacin
function KorektanUnos(sds:TSimpleDataSet;Tabela,Polje,Vrednost:String):Boolean;
var
TD:TTransactionDesc;
sqlText:String;
begin
sqlText := 'select * from ' + Tabela + ' where ' + Polje + ' = ' + QuotedStr( Vrednost );
TD.TransactionID := 3;
TD.IsolationLevel :=xilREADCOMMITTED;
sds.Close;
sds.DataSet.CommandText := sqlText;
SQLConn.StartTransaction(TD);
sds.Open;
SQLConn.Commit(TD);
if sds.RecordCount = 0 then
Result := True
else
begin
Result := False;
ShowMessage('Polje ' + Polje + ' mora imati jedinstvenu vrednost ');
end;
end;
//pozovem je sa
KorektanUnos(sdsUnosIzmena,'T_DRZAVE','NAZIV_DRZAVE',DBEdit2.Text)
Opet nece ne znam gde gresim?
Funkciju pozovem u dogadjaju Balidation
Don't worry be happy