Pretraga od datuma do datuma.

2

Pretraga od datuma do datuma.

offline
  • Pridružio: 08 Jan 2007
  • Poruke: 279
  • Gde živiš: Srbija

with AdoQuery do begin Close; SQL.Clear; SQL.Text := 'SELECT * FROM Neka_Tabela' +#13+ 'WHERE Neko_Polje = :Neko_Polje'); Parameters.ParamByName('Neko_Polje').AsString:= Edit1.Text; Prepared := True; Open; end;
Ovo nece da moze!?! Neutral
Koristim Turbo Delphi Explorer i:
Parameters.ParamByName('Neko_Polje').AsString
ne prolazi, samo ako se postavi:
Parameters.ParamByName('Neko_Polje').Value
niti bilo koja druga vrednost (AsInteger, AsBoolean, etc.)!?!
Zato sam i postavio Value.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Kakav parameters?!
Koja ti je to klasa, koji je to pointer?! Gde si to nashao?
treba samo "paramByName", jel si vec stavio WITH AdoQuery DO
Inace, izbegavaj WITH koliko god mozes. Debug je drasticno tezi.
Izbegavaj .Value

@Srdjos, nemoj da bunis ljude. Proveri code pre nego sto okacis.



offline
  • Pridružio: 08 Jan 2007
  • Poruke: 279
  • Gde živiš: Srbija

Kao sto sam rekao, koristim Turbo Delphi Explorer, ParamByName ne mogu pozvati bez Parameters.
  ADOQuery1.Close;    ADOQuery1.SQL.Clear;    ADOQuery1.SQL.Text:=('SELECT * FROM Tabela WHERE Polje = :Polje');    ADOQuery1.ParamByName('Polje').Value:= Edit1.Text;    ADOQuery1.Prepared := True;   ADOQuery1.Open;
ParamByName, u ovom slucaju ne moze. Samo:
Parameters.ParamByName('Polje').Value:= Edit1.Text;
prolazi. Kako uspete umesto Value odraditi:
Parameters.ParamByName('Polje').AsString:= Edit1.Text;
Ni u Delphiju 7 ni u TD Exploreru to nisam uspeo samo sa Value?!

@beli0135, ostao sam ti duzan, iz helpa:
Citat:
Delphi syntax:
property Parameters: TParameters;

C++ syntax:
__property TParameters* Parameters = {read=GetParameters, write=SetParameters};

Description
Use TParameters to manage a collection of TParameter objects for an object that uses field parameters. For example, TADOStoredProc objects and TADOQuery objects use TParameters objects (in properties named Parameters) to create and access their parameters.

Use the properties and methods of TParameters to:

Access a specific parameter.
Add or delete field parameters from the list.
Get or set the values of individual parameters.
Compare collections of parameters.
Iterate through all parameters.
Copy a collection of parameters to another parameter collection.

At design-time, use Parameters to access the parameters for the SQL statement used by the ADO component. Use the properties and methods of Parameters to set and get individual parameter values or to set or inspect parameter attributes.

At runtime, use the Parameters property editor to access the collection of parameters.

-----------

Locates the parameter with a given name.
Delphi syntax:
function ParamByName(const Value: WideString): TParameter;

C++ syntax:
TParameter* __fastcall ParamByName(const WideString Value);

Description

Use ParamByName method to find a parameter with the name specified in Value. If a match is found, ParamByName returns a reference to the corresponding TParameter object. Otherwise, the TParameter reference is nil (Delphi) or NULL (C++) and an exception is raised. Use this method rather than a direct reference to the Items property to avoid depending on the order of the entries.

ADOQuery1.Parameters.ParamByName('Verb').Value := 'propitiate';
ADOQuery1.Open;
ADOQuery1->Parameters->ParamByName("Verb")->Value = "propitiate";
ADOQuery1->Open();

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Znaci, ParamByName JESTE TParameter pa ti Parameters. ne treba. Nikad za to nisam cui. Do dushe, mozda je TAdoQuery komponenta koja nije nasledjena od TDataSet pa je onda moguce. Nikad je nisam koristio.

Ako nisi uspeo da koristis .asInteger u Delfiju 7, onda ti je ili delfi 7 standardna verzija (rad sa bazama moze samo u Enterprise verziji), ili to nije delfi.

I, molim te, nemoj samnom da se raspravljas sto se tice Delfija+Baze. Uradi kako sam ti rekao. Ako ne radi, gresis negde.

offline
  • Pridružio: 08 Jan 2007
  • Poruke: 279
  • Gde živiš: Srbija

Ne znam zasto si shvatio ovo kao raspravu, samo zelim tebi i ljudima argumentovati ono sto tvrdim. Ako nisi koristio neke komponente, onda to prepusti drugim moderatorima koji jesu.

BTW, Delphi 7, koji imam i gde sam to sve isprobao je Enterprise verzija, a rad s bazama moze u bilo kojoj verziji delphija, turbo delphija, sve zavisi od komponenti koje koristis za komunikaciju sa relacionim masinama. Takodje, ako nema nekih od komponenti, mogu se lako integrisati u razvojno okruzenje, instalacijom paketa ili pojedinacno.
Nasledjivanje:
Citat:
TObject - TPersistent - TComponent - TDataSet - TCustomADODataSet - TADOQuery

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Rasprava je zato sto tvrdis nesto sto apsolutno nije tacno, i jos navodis pocetnike da rade kako ne treba. E na to sam alergican.

Evo ti code koji radi:

var   qry:TAdoQuery; begin   qry.sql.text:='INSERT INTO Tabela (INT_Polje, STR_Polje) VALUES (:int,:str)';   qry.ParamByName('int').asInteger := 1;   qry.ParamByName('str').asString := 'Test'; { nachin 2   qry.params[0].asInteger:=1;   qry.params[1].asString:='Test'; }   qry.ExecSQL; end;

offline
  • Pridružio: 08 Jan 2007
  • Poruke: 279
  • Gde živiš: Srbija

Citat:beli0135:
Do dushe, mozda je TAdoQuery komponenta koja nije nasledjena od TDataSet pa je onda moguce. Nikad je nisam koristio.

Nisam alergičan, ali mi nije jasno kako mozes tvrditi da nesto nije dobro ili da može bez necega, kad nisi ni probao!?! Sa nekim drugim komponentama to verovatno funkcionise ali sa dbGo, ja nisam uspeo.
Reci mi, na kojoj verziji delphija si isprobao taj kod?

Ili još bolje, nek se jave ljudi koji su uspeli to pomoću dbGo komponenti (ADO), dakle, bez Parameters.ParamByName('Neko_Polje').Value?!!!

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Evo upravo sam probao, napisao sam ti code gore.
Znaci nema vise diskusije. znam da radi.

Skini With pa vidi...
Ima i dugme F5 koji stavi breakpoint, pa onda imas ctrl+alt+S da vidis Stack pa uporedi pointere...

offline
  • Pridružio: 08 Jan 2007
  • Poruke: 279
  • Gde živiš: Srbija

Ne sumnjam da to kod tebe radi, ali kod mene, Delphi 7 Enterprise i Turbo Delphi Explorer, nikako da to izvedem na taj nacin.

Zamolio bih te, ipak si moderator, da meni i ljudima slicnim meni na primeru koji sam postavio to sto govoris i napravis, sad zaista, ako nesto nije u redu do mojih verzija delphija bih hteo i saznati. Ne zelim da se na ovome zavrsi, a jos manje da sam osakacen za tako vaznu informaciju.

Hvala unapred.

https://www.mycity.rs/must-login.png

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

OK, skino source i doshao sam do saznanja o Ado komponentama

1. Prvo moram da ti se izvinim, kod mene je radilo kako bi trebalo da radi zato sto je kolega pre 2 god modifikovao ADODB.pas

TParameter je nasledio od TParam, promenio ovo:
property ParamValues[const ParamName: WideString]: Variant read GetParamValue write SetParamValue;
zbog kompatabilnosti sa ostalim komponentama valjda. Niko ne koristi ADO pa niko nije ni primetio.

To sam provalio tek kad sam ushao u source, deinstalirao paket i instalirao originalni ado paket.

2. Ocigledno ADO radi na nenormalan nacin. Sad mi je jasno zasto je bilo prebudzivanja. Klasa radi samo sa varijantima i ima gomilu nebuloza.
Koliko vidim iz dokumentacije, tako zahteva JET 4.0 drajver.

Jedini zakljucak koji imam je da se manes ADO-a da ne bi naucio pogresno. Sve ostalo se radi na isti nacin, koji je drugaciji od ovog.
Druga stvar je da se manes Access-a jer on nema kompatabilnost sa SQL-92. Opet losha stvar ako hoces da ucis da programiras informacione sisteme.

Ko je trenutno na forumu
 

Ukupno su 783 korisnika na forumu :: 28 registrovanih, 2 sakrivenih i 753 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 1798 - dana 19 Sep 2019 18:42

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., antonic.igor2050, antosky, atrkulja, caesar, cikadeda, cole77, Detective, Djokkinen, Georgius2, Grzegorz, igorkozar83, Ivan Gajic, kovacicbozo, Kubovac, marija_ned, Mercury, MidnighT_AlieN, Mihajlo2, nemkea71, rovac, sale755, shsoft02, Snorks, tanakadzo, VladaKG1980, wolf431, šumar bk2