Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Upisivanje podataka u polja koja su prazna

[es] :: C/C++ programiranje :: Upisivanje podataka u polja koja su prazna

[ Pregleda: 2383 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Dejan tf
student, Fakultet tehnickih nauka Cacak

Član broj: 307010
Poruke: 97
*.dynamic.sbb.rs.



+2 Profil

icon Upisivanje podataka u polja koja su prazna10.07.2014. u 09:20 - pre 72 meseci
Potrebno je da upisem u polja KOJA IMAJU VREDNOST 0, VRDNOSTI prethodnog polja sve dok ne dodjem do narednog polja koji ima vrednost u dbf tabeli.

Npr.

PIB
1234567
0
0
1230987
1254976
0
0
1208438

Pokusao sam sa sledecim kodom medjutim samo mi upisuje 1. vrednost npr.1234567 u sva polja koja imaju vrednost 0.

Code:

double pom = ADOQuery1->FieldByName("PIB")->Value;



while(!ADOQuery1->Eof)
{




if (ADOQuery1->FieldByName("PIB")->Value == 0)
{

ADOQuery1->Edit();

ADOQuery1->FieldByName("PIB")->Value=pom;
ADOQuery1->Post();





} else if(ADOQuery1->FieldByName("PIB")->Value != 0){

ADOQuery1->Edit();

ADOQuery1->FieldByName("PIB")->Value=pom;

ADOQuery1->Post();
pom=ADOQuery1->FieldByName("PIB")->Value;


}



ADOQuery1->Next();



}

 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4872
*.3gnet.mts.telekom.rs.

Jabber: xfiles@elitesecurity.org


+624 Profil

icon Re: Upisivanje podataka u polja koja su prazna10.07.2014. u 09:58 - pre 72 meseci
Ako ti je vrednost različita od nule:
(tvoj kod)
Code:

// ...
else if (ADOQuery1->FieldByName("PIB")->Value != 0)
{
   ADOQuery1->Edit();
   ADOQuery1->FieldByName("PIB")->Value=pom;
   ADOQuery1->Post();
   pom=ADOQuery1->FieldByName("PIB")->Value;
}
// ...

... zašto vršiš Edit/Dodelu/Post u tom slučaju? Ako sam razumeo, tada ništa ne radiš sem što pamtiš tu vrednost, radi sledećeg nailaska na nulu:
Code:

// ...
else if (ADOQuery1->FieldByName("PIB")->Value != 0)
{
   pom=ADOQuery1->FieldByName("PIB")->Value;
}
// ...

 
Odgovor na temu

Dejan tf
student, Fakultet tehnickih nauka Cacak

Član broj: 307010
Poruke: 97
*.dynamic.sbb.rs.



+2 Profil

icon Re: Upisivanje podataka u polja koja su prazna10.07.2014. u 10:22 - pre 72 meseci
Pokusavao sam da pom dodelim vrednost pomocu ovog dela koda medjutim ovo ne funkcionise, izgleda da pom promenjiva ne menja vrednost..I dalje mi ostaje ovo:

11111111
0
0
12345667
0
12234566, a treba da dobijem sledece:

11111111
11111111
11111111
12345667
12345667
12234566








Code:

else if (ADOQuery1->FieldByName("PIB")->Value != 0)
{
   pom=ADOQuery1->FieldByName("PIB")->Value;
}

 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4872
*.3gnet.mts.telekom.rs.

Jabber: xfiles@elitesecurity.org


+624 Profil

icon Re: Upisivanje podataka u polja koja su prazna10.07.2014. u 12:09 - pre 72 meseci
Za početak, pokušaj da uskladiš TIPOVE podataka koje čitaš iz baze sa TIPOM "pom" promenljive. Ako je u bazi INTEGER, neka i "pom" bude INTEGER.

Izvrši prosto testiranje i ispis sa nekim ShowMessage() da se uveriš da li petlja i iskaz pronalayi ono što očekuješ, ovako je sve na slepo.

Imaš i ono čitanje -> AsInteger i sl.

 
Odgovor na temu

Dejan tf
student, Fakultet tehnickih nauka Cacak

Član broj: 307010
Poruke: 97
*.dynamic.sbb.rs.



+2 Profil

icon Re: Upisivanje podataka u polja koja su prazna10.07.2014. u 12:52 - pre 72 meseci
Ovako meni je u bazi PIB je tipa float..Kada stavim da mi pom bude tipa float odseca mi zadnju cifru i na zadju poziciju mi upisuje 0.
npr.ako je pib 111111, a ispod 0
dobijam poruku
111110.
Ako pom stavim da mi je tipa double on mi ipise
111111 na sva mesta gde su 0.
U narednoj iteraciji gde postoji nova vrednost piba ne menja vrednost, vec ostavlja ovu vrednost sa tipom double 111111. Moj kod:

111111
0
0
111112
0
0
rezultat:
111111
111110
111110
111112
111110
111110




Code:

float pom = ADOQuery1->FieldByName("PIB")->Value;//ako je 111111

while(!ADOQuery1->Eof)
{

if (ADOQuery1->FieldByName("PIB")->Value == 0)
{
 // ovoj=110

ADOQuery1->Edit();

ADOQuery1->FieldByName("PIB")->Value=pom;

String s = "UPISI sada  ";
 ShowMessage(s + pom); // ispisuje poruku 111110
ADOQuery1->Post();
} else if(ADOQuery1->FieldByName("PIB")->Value != 0){

 String as ="Razlicito od nule ";
ShowMessage( as + pom);  //ispisuje poruku 111110
pom=ADOQuery1->FieldByName("PIB")->Value;
String ab="Sledece je ";

ShowMessage(ab + pom); //ispisuje poruku 111110


}


ADOQuery1->Next();



}

 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4872
*.3gnet.mts.telekom.rs.

Jabber: xfiles@elitesecurity.org


+624 Profil

icon Re: Upisivanje podataka u polja koja su prazna10.07.2014. u 13:49 - pre 72 meseci
Pokušaj umesto "float" da bude "int", a umesto "->Value" da bude "->AsInteger".
 
Odgovor na temu

Dejan tf
student, Fakultet tehnickih nauka Cacak

Član broj: 307010
Poruke: 97
*.dynamic.sbb.rs.



+2 Profil

icon Re: Upisivanje podataka u polja koja su prazna10.07.2014. u 13:56 - pre 72 meseci
Ne funkcionise..
Ako je vrednost u tabeli bila
11111
0
0
11112
0
0


rezultat

11111
11111
11111
11112
11111
11111
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4872
*.dynamic.sbb.rs.

Jabber: xfiles@elitesecurity.org


+624 Profil

icon Re: Upisivanje podataka u polja koja su prazna10.07.2014. u 22:11 - pre 72 meseci
Treba ti neki ovakav kod:
Code:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        ADOTable1->Open();
        int PIB_OLD = ADOTable1->FieldByName("PIB")->AsInteger;

        for ( ADOTable1->First(); !ADOTable1->Eof; ADOTable1->Next() )
        {
                if ( ADOTable1->FieldByName("PIB")->AsInteger == 0 )
                {
                        ADOTable1->Edit();
                        ADOTable1->FieldByName("PIB")->AsInteger = PIB_OLD;
                        ADOTable1->Post();
                }
                else
                {
                        PIB_OLD =  ADOTable1->FieldByName("PIB")->AsInteger;
                }
         }
         ADOTable1->Close();
}
 
Odgovor na temu

Dejan tf
student, Fakultet tehnickih nauka Cacak

Član broj: 307010
Poruke: 97
*.dynamic.sbb.rs.



+2 Profil

icon Re: Upisivanje podataka u polja koja su prazna11.07.2014. u 14:16 - pre 72 meseci
Kod koji funkcionise :

Code:



tabSIF1->Open();
        int PIB_OLD = tabSIF1->FieldByName("PIB")->AsInteger;
       //    String as ="Razlicito od nule ";
     //ShowMessage( as + PIB_OLD);

        for ( tabSIF1->First(); !tabSIF1->Eof; tabSIF1->Next() )
        {
                if ( tabSIF1->FieldByName("PIB")->AsInteger == 0 )
                {
                        tabSIF1->Edit();
                        tabSIF1->FieldByName("PIB")->AsInteger = PIB_OLD;
                        tabSIF1->Post();
                          //String as ="Jednako nuli ";
                      //ShowMessage( as + PIB_OLD);

                }
                else
                {


                        PIB_OLD =  tabSIF1->FieldByName("PIB")->AsInteger;
                          //String as ="Razlicito od nule ";
                      //ShowMessage( as + PIB_OLD);
                }
         }

          ShowMessage("Mozete  kreirati tabelu ");
         tabSIF1->Close();

Hvala puno na pomoci..
 
Odgovor na temu

[es] :: C/C++ programiranje :: Upisivanje podataka u polja koja su prazna

[ Pregleda: 2383 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.