[ lucky666 @ 08.06.2008. 17:31 ] @
Ovako!
Povezao sam se sa dbdemos bazom (dobija se uz delphi) tabela country.db.
Da bih izdvoio drzavu pod odredjenim imenom napisao sam sledeci kod
Query1.Sql:='Select * fromm country where Name:='+Edit1.Text;
Query1.Open;
Prijavljuje mi gresku u sintaksi da nisu kompatibilni tipovi TString i String
Kako da resim problem?
Kako da dobijem sve tabele za zeljenu bazu?
npr.
za bazu dbdemos da se dobije country.db,emplooyee.db,...sve tabele iz date baze da se "napuni"combobox tim tabelama,a kasnije klikom na neku tabelu da se u drugom comboboxu pojave nazivi kolona tih tabela?
POMOC!HVALA!
[ Vladica Savić @ 08.06.2008. 17:51 ] @
A ovako?
Code:

...
// zatvoris ako vec postoji neki query
Query1.Close;
// iscistis i dodas nov
Query1.SQL.Clear;
Query1.SQL.Add ('Select * FROM country WHERE Name = ' + Edit1.Text);
Query1.RequestLive := true;
Query1.Open; 
...


Jel hoce sad?
[ lucky666 @ 08.06.2008. 20:25 ] @
Pokazuje sistemsku gresku.
Kod koji si napisao stavio sam u proceduru button1click i pokazuje sistemsku gresku pri njegovom izvrsavnju.
Kod je OOK ,ali sistem nije baro.
[ Vladica Savić @ 08.06.2008. 22:37 ] @
Postavi sta tacno pojavljuje ko gresku.
[ lucky666 @ 08.06.2008. 22:51 ] @
project.Project1.exe raised exception class EDBEngineError with message"Invvalide field name Canada'.Process stopped.Use step or run to continue.
Kad sam u edit napisao Canada,sto je ime jedne od drzava u tabeli.
[ savkic @ 09.06.2008. 09:09 ] @
> project.Project1.exe raised exception class EDBEngineError with message"Invvalide field name Canada'.Process stopped.Use step or run to continue.
> Kad sam u edit napisao Canada,sto je ime jedne od drzava u tabeli.

Kada se u SQL upitu navodi konstanta (Kanada) ona mora biti pod navodnicima ili se moraju koristiti parametri.
Dakle,

Code:

  Query1.SQL.Add ('Select * FROM country WHERE Name = ' + QuotedStr(Edit1.Text)); 
ili 
  Query1.SQL.Add ('Select * FROM country WHERE Name = :Zemlja');
  Query1.Prepare;
  Query1.Params[0].AsString := Edit1.Text;
[ lucky666 @ 09.06.2008. 12:50 ] @
Igore!
a zemlja se stavi kao parametar[0] u query1?
[ lucky666 @ 09.06.2008. 12:53 ] @
A kako da resim drugi deo mog problema?
Kao da se u combo dobije spisak tabela iz baze?
Kako da se dobiju svi aliansi instalirani na sisitemu?
[ lucky666 @ 09.06.2008. 13:01 ] @
Hvala Igore,hvala Vladice!
Dalke ovaj kod izdvaja zemlje po imenima
[code]
with Query1 do
begin
Close;
SQL.Clear;
sql.Add('select *from country where Name='+QuotedStr(Edit1.Text));
RequestLive:=true;
Query1.Open;
end;
[ savkic @ 09.06.2008. 14:08 ] @
> Kao da se u combo dobije spisak tabela iz baze?

Možeš koristiti TDataBase.GetTableNames. Ako imaš aktivan (otvoren) dataset onda samo pozoveš DataSet.DataBase.GetTableNames ili postaviš posebnu TDatabase komponentu, podesiš alias, name, povežeš je i onda pozoveš metodu.

> Kako da se dobiju svi aliansi instalirani na sisitemu?

Pomoću TSession.GetAliasNames, slično je kao i za GetTableNames, posebna TSession komponenta ili povezan Dataset.Session.

> a zemlja se stavi kao parametar[0] u query1?

Da, pročitaj help za Params property dataseta i isprobavaj, tako se najbolje uči.

BTW u poslednjoj poruci si zaboravio da dodaš završni [/code].
[ lucky666 @ 09.06.2008. 21:08 ] @
Igore!

Generalno mi je jasno,ali ne znam to da uradim,
Kako da povezem punjenje combo objekta sa pronadjenim alijansima(tabelama)......?
aj mi malo pojsni
[ lucky666 @ 09.06.2008. 21:35 ] @
Uspelo mi je!
HVALA IGORE!
evo mog nacina
Code:


procedure TForm1.FormCreate(Sender: TObject);
begin
Session.GetAliasNames(ComboBox1.Items);
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Session.GetTableNames(ComboBox1.Text,'*.*',true,true,ComboBox2.Items);
end;

HVALA!
Ukapirao sam nesto oko primene sqla u Delphiju!:d