» »

[Delphi] Kako spraviti tole v Array in iskanje po vseh poljih tabele

[Delphi] Kako spraviti tole v Array in iskanje po vseh poljih tabele

levaky ::

LP!

Evo sem n00b zato se že takoj oproščam za precej n00bovska vprašanja. Matra me naslednje.

1.)
Imam form z TEdit polji, kamor vnašam podatke, ki jih kasneje s pritiskom na gumb shranim v mysql bazo. Podatke iz TEdit polj v mysql prenesem z naslednjimi ukazi:

MySqlTable.Insert;
MySqlTable.FieldByName('naziv').AsString:=naziv.Text;
MySqlTable.FieldByName('naslov').AsString:=naslov.Text;
MySqlTable.FieldByName('posta').AsString:=posta.Text;
MySqlTable.FieldByName('naslov2').AsString:=naslov2.Text;
MySqlTable.FieldByName('posta2').AsString:=posta2.Text;
MySqlTable.FieldByName('tel_1').AsString:=telefon.Text;
MySqlTable.FieldByName('tel_2').AsString:=telefon1.Text;
MySqlTable.FieldByName('tel_3').AsString:=telefon2.Text;
MySqlTable.FieldByName('fax').AsString:=faks.Text;
MySqlTable.FieldByName('eposta').AsString:=eposta.Text;
MySqlTable.FieldByName('IDpodrocje_sodelovanja').AsString:=sodelovanje.Text;
MySqlTable.FieldByName('davcna').AsString:=davcna.Text;
MySqlTable.FieldByName('maticna').AsString:=maticna.Text;
MySqlTable.FieldByName('racun').AsString:=ziro.Text;
MySqlTable.FieldByName('razno').AsString:=razno.Text;
MySqlTable.Post;
ShowMessage('Vnos je dodan!');


Vem, tole zgleda grdo ko hudič, najbrž pa tudi ni najbolj optimizirano, ampak taki so začetki:)

Rad bi tele MySqlTable.blablabla spravil v kak foreach zanko ali pa kaj podobnega, pa ne vem kako se lotit. (Po moje) bi bilo najbolje bi bilo najbolje imena polj in imena TEdit polj spravit v Array-e in potem s kako zanko klicat eno in drugo spremenljivko in jo vstavit notri. Takih "klobas" imam v programu kar precej in bi s tem, če ne drugega, naredil kodo precej bolj berljivo. Problem je, da Arrayov nisem nikoli uporabljal in bi rabil malo pomoči (magari en sample) in pa hint katero zanko uporabiti.

2.)
Imam tabelo X z 3-mi polji recimo. Ali je možno iskati določen string po vseh poljih vseh zapisov? Trenutno mi edino na misel pride SELECT stavek z WHERE polje1 LIKE %$string% OR (in tako za vsa ostala polja). Ali obstaja kakšen lepši način? Ali je možno potem zadetek tudi označiti z focusom?

Najlepša hvala za odgovore, Matej

kulSMS ::

za stringe bi uporabil tako kodo
lahko deklariraš kar med konstante

const
meseci:array[0..12] of string=
('','Januar','Februar','Marec','April','Maj','Junij',
'Julij','Avgust','September','Oktober','November','December');


var
polja:array[0..12] of TEdit;

potem pa vsakega posebej vpišeš v create proceduri.
polja[0]:=naziv;
polja[1]:=naslov;


MySqlTable.FieldByName(meseci[i]).AsString:=polja[i].text;

Če imaš točno takih klobas v programu veliko je najbolje če daš eno klobaso v proceduro in jo potem kličeš.

Če pa niso čisto enake potem pa lahko recimo kličeš proceduro s parametrom
Procedure VstaviVbazo(mode:integer);
begin
//glede na mode določiš kaj se naj vstavi
end;

zhigatsey ::

Namesto navadnih komponent(TEdit) uporaljaj DB komponente (TDBEdit), in ne bo ti treba
tega špeha pisati...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Baza & c#

Oddelek: Programiranje
214154 (3212) xardas
»

C# text v .pdf

Oddelek: Programiranje
81419 (1208) japol
»

[VB] Komunikacija s serijskimi napravami

Oddelek: Programiranje
412300 (1574) mNeRo
»

kako odpret DB datoteko (ni paradox)

Oddelek: Programiranje
81632 (1528) zeleznika
»

Mam en problem...

Oddelek: Programiranje
111205 (1042) glavic

Več podobnih tem