Avatar billede nih Novice
18. januar 2002 - 11:01 Der er 7 kommentarer og
2 løsninger

ADO paramter forespørgsel

Hvorfor virker den her ikke

procedure TData.skiftmaaned1  (Aaar, Amnd : integer);
var
  dat1, dat2 : tDateTime;
begin
  dat1 := encodedate(Aaar,Amnd,1);
  dat2 := EndOfAMonth(Aaar,Amnd);

  With Q1 do begin
    prepared := true;
    Parameters.paramByName(\'dat1\').Value := dat1;
    Parameters.paramByName(\'dat2\').value := dat2;

    open;

    //showmessage(inttostr(RecordCount));
  end;
end;

Det er som om datatyperne ikke oasser sammen.
Avatar billede morten_s Nybegynder
18. januar 2002 - 11:03 #1
Har du prøvet

Parameters.paramByName(\'dat1\').ASDATETIME := dat1;
Avatar billede nih Novice
18. januar 2002 - 11:04 #2
min SQL ser sådan ud:

SELECT Dato, NavnId
FROM tbl1
WHERE
  dato >= :dat1 AND
  dato <= :dat2

msAccess hvor [dato] er af typen date.
Avatar billede nih Novice
18. januar 2002 - 11:06 #3
ASDATETIME kan ikke bruges i ADO - det giver ihvertfald fejl.

Niels
Avatar billede snowball Novice
18. januar 2002 - 11:06 #4
morten_s: Når det er ADO og man skal tilskrive en parameter en værdi, så kan man kun bruge .Value og ikke .AsString, .AsInteger osv. som man kunne med BDE ! ;)

Når man derimod skal hive data ud igen, så kan man godt bruge .AsString osv. ! ;)

Snowball
Avatar billede nih Novice
18. januar 2002 - 11:12 #5
burde det ikke være rigtig ????

Niels
Avatar billede morten_s Nybegynder
18. januar 2002 - 11:14 #6
det var kun et forslag

måske du skal have fat i denne så

var
  Str1 : String;
DateTimeToString(Str1,\'yyyy-mm-dd\',Now);
Parameters.paramByName(\'dat1\').Value := Str1;

Så kan du selv bygge dit datoformat op så det passer til din db
Avatar billede nih Novice
18. januar 2002 - 11:37 #7
Mener du at at jeg skal lave dataformattet om i min db ???

Jeg har prøvet at sende datoen som en streng på forskellige måder:

  DateTimeToString(S1,\'yyyy-mm-dd\',dat1);
  DateTimeToString(S2,\'yyyy-mm-dd\',dat2);

    Parameters.paramByName(\'dat1\').Value := \'#\' +  s1 + \'#\';
    Parameters.paramByName(\'dat2\').value := \'#\' +  s2 + \'#\';

med \'#\' og \'\"\'.
formattet er prøvet med \'yyyy-mm-dd\' og \'mm-dd-yy\'

desværre uden held :(

niels
Avatar billede morten_s Nybegynder
18. januar 2002 - 12:18 #8
Nej jeg mener du skal prøve det du har gjort

til MySql skal formattet \'yyyy-mm-dd\' bruges
Avatar billede nih Novice
19. januar 2002 - 11:51 #9
fik det til at virke ved at bruge egenskaben \'filter\', men det er ALT for langsom.

Venter med at konvertere til ADO .....

Niels
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester