Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 18 odgovora
  • 9.230 pregleda

Najnovija ↓

Delphi Aplikacije i SQL upiti? 22.12.2005. u 11:43 · pre 253 meseca #1
Napravio sam BP u SQL Server-u 2000. Znaci, ima vise tabela u oviru nje.
Povezao sam bazu sa Delphi Aplikacijom putem ADO tehnologije i to sve lepo radi.
Na osnovu ADO tutorijala sa sajta, resio sam neke probleme.
E, sad, hteo bih da nad tabelama a putem Delphi-ja izvodim SQL upite, tipa:

SELECT *
FROM
WHERE

a kasnije i nesto slozenije.

Kako se to u Delphi okruzenju izvodi? Molim za detaljan odgovor zato sto
nisam nikad radio sa SQL upitima...

P.S. SQL naredbe u okviru samog SQL Server-a 2000 daju mi zeljeno i hteo bih to
isto iz Delphi Aplikacije

Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Delphi Aplikacije i SQL upiti? 22.12.2005. u 13:14 · pre 253 meseca #2
Koristi ado query, pogledaj help u Delphiju
Potpis
ERROR974
Re: Delphi Aplikacije i SQL upiti? 22.12.2005. u 17:44 · pre 253 meseca #3
Da, znam da postoji ADOQuery ali ne znam kako to sve
da povezem kao sa ADOTable i vrsim obradu?!
Moze neko objasnjenje, detaljnije o tome?
Sta sve treba postaviti na formu, povezati sa dbgrid-om?
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Delphi Aplikacije i SQL upiti? 23.12.2005. u 15:00 · pre 253 meseca
izmenjeno 1 put, poslednji put DeYo 23.12.2005. u 15:01
  1. DeYo23.12.2005. u 15:01zapis iz teksta poruke
#4
imas kompletan ADO tutorijal na:
http://delphi.about.com/od/database/a/databasecourse.htm

konkretno, povezivanje ADOQuery-ja sa ostalim komponentama je objasnjeno u chapter 7:
http://delphi.about.com/od/database/l/aa050101a.htm
Re: Delphi Aplikacije i SQL upiti? 24.12.2005. u 17:58 · pre 253 meseca #5
Hvala, pomoglo mi je da uradim sta sam zeleo!!!

with ADOQuery1 do begin
Close;
SQL.Text := 'SELECT OilName FROM Oils ';
Open;

Ispisao sam ovaj kod i on mi prikaze celu tabelu, e sad ja bi hteo da mi se iz OilName
isfiltrira Ime koje sam uneo u Edit1.Text, probao sam sledece, al nece:


with ADOQuery1 do begin
Close;
SQL.Text := 'SELECT OilName FROM Oils '+ Edit1.Text;
Open;

U cemu je problem?
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Delphi Aplikacije i SQL upiti? 24.12.2005. u 19:23 · pre 253 meseca #6
with ADOQuery1 do
begin
Close;
SQL.Text := 'SELECT OilName FROM Oils where OilName ='+ Edit1.Text;
Open;

mozda je umesto znaka jednakosti 'LIKE' ne secam se... tj. koristim mySQL server

Ako ti i dalje ne radi onda zahteva da edit text preneses kao tekst izmedju '' pa onda koristi QuotedStr
Re: Delphi Aplikacije i SQL upiti? 24.12.2005. u 19:44 · pre 253 meseca
izmenjeno 1 put, poslednji put loshmiscg 24.12.2005. u 20:09
  1. loshmiscg24.12.2005. u 20:09zapis iz teksta poruke
#7
Nije mi uspelo:

with ADOQuery1 do
begin
Close;
SQL.Text := 'SELECT OilName FROM Oils where OilName ='+ Edit1.Text;
Open;

Ni sa LIKE?!

Sta si mislio pod:
"Ako ti i dalje ne radi onda zahteva da edit text preneses kao tekst izmedju '' pa onda koristi QuotedStr?!

Dalje, sta mi je interesantno:

Povezao sam Delphi Aplikaciju sa SQL Serverom 2000 i odradio neke upite.
E, sad, pokusao sam da isfiltriram ali ne ide. Kod:

with ADOQuery1 do begin
Close;
SQL.Text := 'SELECT * FROM Ime Tabele WHERE Ime Polja LIKE "%'+deo_reci+'%"';
Open;
end;

Ovo je sve ok ali nesto nije u redu sa sintaksom, odnosno "%'+deo_reci+'%" ovo deo_reci
uvek bude greska, sve ovo je plave boje ali deo_reci je crne?!
Sta je problem?

Drugo, hteo bih postaviti jedan Edit1.Text i da se u njega unese jedno slovo i da se
isfiltriraju sva imena na to slovo (koja pocinju na to slovo)?



Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Delphi Aplikacije i SQL upiti? 25.12.2005. u 01:48 · pre 253 meseca
izmenjeno 1 put, poslednji put dekys 25.12.2005. u 01:50
  1. dekys25.12.2005. u 01:50zapis iz teksta poruke
#8
Code:
   SQL.Add('SELECT DUZINA, REC, OPIS');
      SQL.Add('FROM Enigma');
      SQL.Add('WHERE (REC ="' + Form1.Edit2.Text  + '")');



ili

Code:

      SQL.Add('SELECT DUZINA, REC, OPIS');
      SQL.Add('FROM  Enigma');
      SQL.Add('WHERE   (DUZINA =' +  IntToStr(SpinEdit1.Value) + ')');
      SQL.Add('AND  (REC LIKE' + chr(39)+Form2.Edit1.Text+chr(39)+ ')');
      SQL.Add('ORDER BY REC');


Evo ovako sam ja to nekada negde uradio!!!

Sada koristim parametrizirane upite. Tebi ce ovo biti dovoljno!

Citav problem je da znacina apostrofima tj. chr(39)


sto se tice ' (koja pocinju na to slovo)?' koristio sam

Code:
  SQL.Add('WHERE REC LIKE ' + chr(39) + Form5.Edit1.Text +'%' + chr(39));
Re: Delphi Aplikacije i SQL upiti? 25.12.2005. u 03:33 · pre 253 meseca
izmenjeno 1 put, poslednji put loshmiscg 25.12.2005. u 03:51
  1. loshmiscg25.12.2005. u 03:51zapis iz teksta poruke
#9
Uneo sam ovaj kod:

procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Add('SELECT OilName, LatinName');
ADOQuery1.SQL.Add('FROM Oils');
ADOQuery1.SQL.Add('WHERE OilName LIKE ' + chr(39) + Form1.Edit1.Text +'%' + chr(39));
ADOQuery1.Open;
end;

I nista, samo prikaze DBGrid1 sa poljima tabele ali prazno?!

Druga procedura:

procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery1.SQL.Add('SELECT OilName, LatinName');
ADOQuery1.SQL.Add('FROM Oils');
ADOQuery1.SQL.Add('WHERE (OilName ="' + Form1.Edit1.Text + '")');

end;


I nista, samo prikaze DBGrid1 sa poljima tabele ali prazno?!

Da li to ima neke veze kako su polja indeksirana u SQL Serveru 2000? ( primarni index je OilID,
a ostala dva indexa su OilName i LatinName)

Procedura pokazuje kao da taj podatak koji je unet u bazu ne postoji zato je DBGrid prazan, a u stvari je tu
ili nije polje dobro indeksirano pa ne moze vrsiti pretragu po tom polju?!
Probao sam i sa OilID koji je indeksiran kao primarni i opet isto?!

Kod za OilID(primarni kljuc):

procedure TForm1.Button3Click(Sender: TObject);
begin
ADOQuery1.SQL.Add('SELECT OilID, OilName, LatinName');
ADOQuery1.SQL.Add('FROM Oils');
ADOQuery1.SQL.Add('WHERE (OilID ="' + Form1.Edit1.Text + '")');

end;

A kad ubacim jos i ADOQuery1.Open, kod:

ADOQuery1.SQL.Add('SELECT OilName, LatinName');
ADOQuery1.SQL.Add('FROM Oils');
ADOQuery1.SQL.Add('WHERE (OilName ="' + Form1.Edit1.Text + '")');
ADOQuery1.Open;

izbaci gresku : Invalid Column Name 'neki naziv'?! - a "neki naziv" je upisan
u tu kolonu.
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Delphi Aplikacije i SQL upiti? 25.12.2005. u 17:18 · pre 253 meseca #10
Proveri setovanja za SQL server u ODBC. Mislim da bi trebalo da cekiras opciju use Ansi quoted strings.
Potpis
ERROR974
Re: Delphi Aplikacije i SQL upiti? 25.12.2005. u 17:59 · pre 253 meseca #11
Citat:
Vic: Proveri setovanja za SQL server u ODBC. Mislim da bi trebalo da cekiras opciju use Ansi quoted strings.


Mozes li malo da mi pojasnis ovo sto si napisao, odnosno da mi objasnis kako to
da izvedem?
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Delphi Aplikacije i SQL upiti? 26.12.2005. u 01:01 · pre 253 meseca
izmenjeno 1 put, poslednji put loshmiscg 26.12.2005. u 11:24
  1. loshmiscg26.12.2005. u 11:24zapis iz teksta poruke
#13
Unesem ali ni tad nece da funkcionise?!

Code:
 ADOQuery1.SQL.Add('SELECT OilName, LatinName');
         ADOQuery1.SQL.Add('FROM Oils');
         ADOQuery1.SQL.Add('WHERE (OilName ="' + Form1.Edit1.Text  + '")');
         ADOQuery1.Open;


Znaci u Edit1.Text je unesena neka vrednost iz polja OilName, znaci ta vrednost postoji u kolono OilName,
i pritiskom na dugme (OnClick) izbaci se greska:

"Invalid column name "trazena_vrednost""
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Delphi Aplikacije i SQL upiti? 30.12.2005. u 14:12 · pre 253 meseca #14
Zar je moguce da mi niko ne moze pomoci resiti problem?!
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Delphi Aplikacije i SQL upiti? 30.12.2005. u 22:19 · pre 253 meseca #15
pa mozes i sam da zakljucis u cemu je problem
"Invalid column name "trazena_vrednost""!!!!!!!!!!!!!!
Verovatno imam u komponenti ADOQuery1 u SQL vec unesen neki upit tako da ti on pokusava odraditi i taj upit i onaj koji ti iz coda dodas zato je potrebno da ga predhodno ocistis

Code:
 ADOQuery1.Clear;
ADOQuery1.SQL.Add('SELECT OilName, LatinName');         
ADOQuery1.SQL.Add('FROM Oils');         
ADOQuery1.SQL.Add('WHERE (OilName ="' + Form1.Edit1.Text  + '")');         ADOQuery1.Open;
Re: Delphi Aplikacije i SQL upiti? 03.01.2006. u 14:02 · pre 253 meseca
izmenjeno 1 put, poslednji put loshmiscg 03.01.2006. u 14:03
  1. loshmiscg03.01.2006. u 14:03zapis iz teksta poruke
#16
Code:
ADOQuery1.SQL.Clear;
        ADOQuery1.SQL.Add('SELECT OilName');
        ADOQuery1.SQL.Add('FROM Oils');
        ADOQuery1.SQL.Add('WHERE (OilName ="' + Form1.Edit1.Text  + '")');
        ADOQuery1.Open;


Ista greska : "Invalid column name 'naziv'"!?
Da li treba ADOQuery1 da se stavi u insert mode ili edit mode?!
Ili tako neka caka!?
Polje po kojem ovde zelim vrsiti pretragu je indeksirano i kad
koristim:

Code:
ADOTable1.Filter := 'OilName = ' + QuotedStr(Edit1.Text);
         ADOTable1.Filtered := true;
         if Edit1.Text = '' then
            ShowMessage('Unesite OilName po kojem se vrsi filtriranje!');
            Edit1.Clear;


i sve lepo odradi?! Gde gresim u Query?
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Delphi Aplikacije i SQL upiti? 04.01.2006. u 12:57 · pre 253 meseca #17
Ljudi, moze li neko?
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Delphi Aplikacije i SQL upiti? 05.01.2006. u 12:47 · pre 253 meseca #18

with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT OilName');
SQL.Add('FROM Oils');
SQL.Add('WHERE (OilName =' + QuotedStr(Edit1.Text) + ')');
Open;
end
Potpis
Marcha
-----------------------------------
Pretpostavka je majka zajeba.
Re: Delphi Aplikacije i SQL upiti? 05.01.2006. u 15:56 · pre 253 meseca
izmenjeno 1 put, poslednji put loshmiscg 07.01.2006. u 15:24
  1. loshmiscg07.01.2006. u 15:24zapis iz teksta poruke
#19
To mi je trebalo...
Hvala ti druze...

Idemo dalje:

1) Sad bi hteo da prilikom unosa slova npr. B u Edit1.Text da izlista ( isfiltrira ) sva
imena u koloni OilName koji pocinju na to slovo?!

2) da se pretraga izvrsi po dva polja ( Edit1.Text i Edit2.Text),znaci da se
unesu 2 vrednosti za filtriranje, slicno ovome samo za dve kolone:

Code:
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT OilName');
SQL.Add('FROM Oils');
SQL.Add('WHERE (OilName =' + QuotedStr(Edit1.Text) + ')');
Open;
end


na osnovu polja OilName i LatinName, na primer?!

Moze li?
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme