Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa ubacivanjem DateTime vrednosti u tabelu baze SQL Servera 2008

[es] :: MS SQL :: Problem sa ubacivanjem DateTime vrednosti u tabelu baze SQL Servera 2008

[ Pregleda: 2551 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

unisoft
Uzice

Član broj: 124050
Poruke: 346
*.dynamic.isp.telekom.rs.



+1 Profil

icon Problem sa ubacivanjem DateTime vrednosti u tabelu baze SQL Servera 200811.08.2010. u 14:35 - pre 165 meseci
Imam jedan program koji se zove prebacivanje MS Access baze na MS SQL Server :) ? Problem sa javlja kada korisnik upise svoje korisnicko ime i sifru na login formi i pritisne OK. Kada pritisne OK button u kodu postoje 3 promenljive. Prve dve su tipa string a treca je tipa date. Promenljiva cuva strUlazImeP korisnicko ime, u promenljivu strUlazSifraP cuva se sifra korisnika, a u promenljivoj datUlazVremeDatumP se cuva vreme kada je korisnik kliknuo na button ok (ovo vreme sam dobio pomocu funkcije Now()).

Code:

INSERT INTO Podaci (datum,) VALUES ('03/04/1988')
INSERT INTO Podaci (datum,vreme) VALUES ('03/04/1988','23:32;13')


u prva dva slucaja radi ali u trecem nece.
Code:

INSERT INTO Podaci (datum,vreme,vremedatum) VALUES ('03/04/1988','23:32;13','03/04/1988 23:32:13')

Moj VB6 kod izgleda ovako.
Code:

    mdiGlavna.strUpit = "INSERT INTO tblUlazakPokusaj (Korisnik,Šifra,[Vreme i datum]) VALUES ("
    mdiGlavna.strUpit = mdiGlavna.strUpit & "'" & mdiGlavna.strUlazImeP & "',"
    mdiGlavna.strUpit = mdiGlavna.strUpit & "'" & mdiGlavna.strUlazSifraP & "',"
    mdiGlavna.strUpit = mdiGlavna.strUpit & "#" &  mdiGlavna.datUlazVremeDatumP & "#)"
    
    mdiGlavna.acnKonekcija.Execute mdiGlavna.strUpit

promenljiva datUlazVremeDatumP cuva vrednost iz funkcije Now().
Visual Basic 6 mi prijavi sledecu gresku kada kliknem na OK button login forme
Code:

Run-time error '-2147217900(80040e14)':
[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '15'.


Program je napisan u Visual Basic 6 SP6.

[Ovu poruku je menjao unisoft dana 11.08.2010. u 15:49 GMT+1]
 
Odgovor na temu

Fedya
Fedor Hajdu
Solution Architect
Emaratech
Dubai, UAE

Član broj: 28246
Poruke: 790
82.117.202.*

Jabber: fedya@elitesecurity.org
Sajt: devtechgroup.com


+34 Profil

icon Re: Problem sa ubacivanjem DateTime vrednosti u tabelu baze SQL Servera 200811.08.2010. u 15:45 - pre 165 meseci
Generisanje upita nadovezivanjem stringova nikad nije dobra ideja (SQL Injection i sl), no to nije tema. Sudeci po gresci koju si dobio prepostavljam da nadovezivanje stringova nije dobro proslo (fali ti apostrof ili imas viska). Izprintaj upit koji ti se generise pre slanja u bazu (ili prepisi taj VB code da koristi da koristi parametre).
Every hamster has his day.
 
Odgovor na temu

unisoft
Uzice

Član broj: 124050
Poruke: 346
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Problem sa ubacivanjem DateTime vrednosti u tabelu baze SQL Servera 200811.08.2010. u 16:18 - pre 165 meseci
Upit pre slanja u bazu izgleda ovako.
Code:

INSERT INTO tblUlazakPokusaj (Korisnik,Šifra,[Vreme i datum]) VALUES ('admin','admin',#11082010 17:09:14#)


 
Odgovor na temu

Fedya
Fedor Hajdu
Solution Architect
Emaratech
Dubai, UAE

Član broj: 28246
Poruke: 790
82.117.202.*

Jabber: fedya@elitesecurity.org
Sajt: devtechgroup.com


+34 Profil

icon Re: Problem sa ubacivanjem DateTime vrednosti u tabelu baze SQL Servera 200811.08.2010. u 16:26 - pre 165 meseci
Pa #11082010 17:09:14# tesko da ce ti prodje kao validan datum. Preformatiraj ga i nemoj prosledjivati sa #datum# nego 'datum'.

Znaci da upit izgleda nesto kao:

Code:
INSERT INTO tblUlazakPokusaj (Korisnik,Šifra,[Vreme i datum]) VALUES ('admin','admin','11/08/2010 17:09:14')

Every hamster has his day.
 
Odgovor na temu

unisoft
Uzice

Član broj: 124050
Poruke: 346
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Problem sa ubacivanjem DateTime vrednosti u tabelu baze SQL Servera 200811.08.2010. u 16:50 - pre 165 meseci
Problem je resen, hvala Fedya.

Trebalo je samo fiksirati date promenljivu sa jednim apostrofom na pocetku i kraju '.
Code:

INSERT INTO tblUlazakPokusaj (Korisnik,Šifra,[Vreme i datum]) VALUES ('admin','admin','11/08/2010 17:09:14')


Ovo radi ali zar se kod SQL Servera ne formatiraju sa 'stringovi, a # datum. Zasto su onda pravili u SQL Serveru polje tipa datetime.
 
Odgovor na temu

Fedya
Fedor Hajdu
Solution Architect
Emaratech
Dubai, UAE

Član broj: 28246
Poruke: 790
82.117.202.*

Jabber: fedya@elitesecurity.org
Sajt: devtechgroup.com


+34 Profil

icon Re: Problem sa ubacivanjem DateTime vrednosti u tabelu baze SQL Servera 200811.08.2010. u 17:09 - pre 165 meseci
Parametar prosledjujes kao string ali on i dalje zadrzava osobine datuma. Npr mozes reci DATEADD(20, dd, tvojdatum) i SQL ce ti korektno dodati 20 dana bez potrebe da pises kod koji ce proveravati koliko mesec ima dana i sl. Takodje sortinje po datumu ce raditi kako treba, sto ne bi bio slucaj ako bi ga snimio kao string...
Every hamster has his day.
 
Odgovor na temu

unisoft
Uzice

Član broj: 124050
Poruke: 346
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Problem sa ubacivanjem DateTime vrednosti u tabelu baze SQL Servera 200811.08.2010. u 17:28 - pre 165 meseci
Veoma zbunjujuce... ali dobro ako je tako.
 
Odgovor na temu

[es] :: MS SQL :: Problem sa ubacivanjem DateTime vrednosti u tabelu baze SQL Servera 2008

[ Pregleda: 2551 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.