Avatar billede nop Nybegynder
02. april 2003 - 09:26 Der er 4 kommentarer og
1 løsning

SQL dato og parameter bygning

Jeg kan ikke få en TdateTime puttet ordentligt ned i en sql database, den skal kunne tage hensyn til de forskellige formater verden over.
Først brugte jeg bare dateToStr() men den vil ikke virke hvis sql-en er sat op til fx us-fmt og windoes til fx dk.
Så nu har jeg endelig fået styr på parameters og kan godt opdatere/indsætte almindelige felter, MEN hvordan for jeg sql'en til at akceptere en dato, og jeg har prøvet at konvertere til en TSQLtimeStamp type, men ligemeget hvad så får jeg en fejl meddelelse der siger:
class EOleException with message [Microsoft][ODBC sql server driver]Optional feature not implemented.

Her er hvad jeg har prøvet med (en af dem), bemærk at det kun er datoen der giver fejl, hvis linjen remmes ud, så opdateres mine data helt ok.

db:=Tdatabase.create('pvOdbc','kaj','andrea');
q:=TadoQuery.Create(nil);
q.Connection:=db.connection;

sql:='update pvBase '+
    'set version=:f0,formDate=:f1';
q.SQL.Add(sql);
q.Parameters.ParamByName('f0').Value:='Test 1.0';

dt:=encodeDate(2005,1,1);//+encodeTime(23,59,58,576);
q.Parameters.ParamByName('f1').Value:=dt;
q.ExecSQL;

q.Free;
db.Free;
Avatar billede preusse Nybegynder
03. april 2003 - 11:01 #1
Hvilken version er din OLE DB / ODBC driver - Hvilket styresystem bruger du på din maskine - Hvilken felt type bruger du i din SQL database - Hvilken version af MS SQL bruger du ?
Avatar billede nop Nybegynder
03. april 2003 - 15:55 #2
Jeg vil tro at alle dine spørgsmål er overflødige, men det er w2k pro, sql7.0 og feltet er da selvfølgelig et dateTime felt ellers var der vel ikke nogle ide i spørgsmålet (har du tænkt over hvad du spørger om?)
Avatar billede nop Nybegynder
03. april 2003 - 15:57 #3
Ok jeg glemte hel odbc driveren og der er nok her at der er et problem, hvis fejl-msg er helt rigtig.
Avatar billede cyaegha Nybegynder
13. april 2003 - 16:05 #4
Det ser ud til at du godt kan få datoen lavet korrekt.
Jeg har med succes benyttet funktionen DateTimeToStr(). Så du kunne prøve:

q.Parameters.ParamByName('f1').Value:=DateTimeToStr(dt);
Avatar billede nop Nybegynder
18. juni 2003 - 12:13 #5
Jeg brugte en ts {'mm-dd-yyyy hh:nn'} til sidste og det virker, td osse for kun dato.
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