/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Hjælp til indsættelse af dags dato i acces~
Fra : Kenneth Christensen


Dato : 09-04-07 23:22

Hejsa, jeg sidder og arbejder med et lille projekt, og har nu
gemmen en del timer kæmpet med at få det her skidt til at virke,
jeg har prøvet adskillige fremgangsmåder, besøgt en masse sites i
et søg om hjælp, men lige lidt hjælper det..

Her er koden jeg sidder og roder med;

   <% var rUserName, rRating, rReview, rMovieId;
   
   rUserName = Request("userName");
   rRating = Request("rating");
   rReview = Request("review");
   rMovieId = Request("movieId");
   
   
   var d=new Date();
   var day=d.getDate();
   var month=d.getMonth() + 1;
   var year=d.getFullYear();
   var dato = year + "/" + month + "/" + day;
   
   
   var connection = Server.CreateObject( "ADODB.Connection" );
   connection.Open( "MovieLoversDatabase" );
   var insetReviewQuery = "INSERT INTO Reviewed " + "(userName,
rating, review, date, movieId)" + " VALUES ('" + rUserName + "',
'" + rRating + "', '" + rReview + "', '" + dato + "', '" +
rMovieId + "')";
   connection.Execute(insetReviewQuery);
   
   %>

Og fejlen jeg får ud af det, for en god ordens skyld er:
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT
INTO statement.
/insertreview.asp, line 47

Så er der en venlig sjæl derude der kan lede mig lidt på rette
vej?
For en god ordens skyld bør det vel nævnes at Data typen i access
er Date/Time

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jørn Andersen (10-04-2007)
Kommentar
Fra : Jørn Andersen


Dato : 10-04-07 01:04

On 09 Apr 2007 22:22:24 GMT, Kenneth Christensen <etagnuz@hotmail.com>
wrote:

>Hejsa, jeg sidder og arbejder med et lille projekt, og har nu
>gemmen en del timer kæmpet med at få det her skidt til at virke,
>jeg har prøvet adskillige fremgangsmåder, besøgt en masse sites i
>et søg om hjælp, men lige lidt hjælper det..

Hvis dette felt altid skal oprettes med værdien aktuel tid, så er langt
det nemmeste at sætte feltets default-værdi til Now() i selve databasen,
så slipper du helt uden om problemet.
Det forhindrer dig ikke i hverken at ændre tiden eller at oprette en
post med en anden tid, hvis det undtagelsesvis skulle ønskes.

>Her er koden jeg sidder og roder med;
>
>   <% var rUserName, rRating, rReview, rMovieId;
>   
>   rUserName = Request("userName");
>   rRating = Request("rating");
>   rReview = Request("review");
>   rMovieId = Request("movieId");
>   
>   
>   var d=new Date();
>   var day=d.getDate();
>   var month=d.getMonth() + 1;
>   var year=d.getFullYear();
>   var dato = year + "/" + month + "/" + day;

Dette er at gå over åen efter vand:
Du tager en dato-værdi, som du herefter konverterer til en streng-værdi
- for derefter at putte den ind i et dato-felt.

Tag i stedet et kig på:
<url: http://www.asp-faq.dk/article/?id=98>
- hvis du skal indsætte datoer.

>   var connection = Server.CreateObject( "ADODB.Connection" );
>   connection.Open( "MovieLoversDatabase" );
>   var insetReviewQuery = "INSERT INTO Reviewed " + "(userName,
>rating, review, date, movieId)" + " VALUES ('" + rUserName + "',
>'" + rRating + "', '" + rReview + "', '" + dato + "', '" +
>rMovieId + "')";

Når du har problemer med en SQL-streng, så er første skridt altid at
udskrive den. Se:
<url: http://www.asp-faq.dk/article/?id=41>

Indsæt midlertidigt disse to linier før .Execute-linien:

Response.Write insetReviewQuery
Response.End
(omsæt selv til JScript, det er ikke min stærke side.)

Når du har udskrevet den resulterende SQL-streng, er det ofte meget
nemmere at se, hvad der er galt.

Mit gæt er, at det går galt, enten fordi '2007/4/9' ikke opfattes som en
dato - eller fordi et eller flere af de andre felter i din db ikke er
tekst-felter.
Hvis fx movieId-feltet ikke er et tekst-felt, skal der ikke ' om
værdien.

Din SQL-streng kunne fx se sådan ud:
var insetReviewQuery = "INSERT INTO Reviewed (userName, rating, review,
date, movieId) VALUES ('" + rUserName + "', " + rRating + ", '" +
rReview + "', Now(), " + rMovieId + ")";
- her er det forudsat, at rating og movieId-felterne er tal-felter.
Tilret selv.

Bemærk, at dato-feltet blot benytter Access' indbyggede funktion Now() -
det er altså ikke en ASP-funktion, men en Access-funktion, og den skal
derfor blot skrives direkte ind som en del af SQL-strengen.

<snip resten>

Good luck!

--
Jørn Andersen,
Brønshøj

Kenneth Christensen (10-04-2007)
Kommentar
Fra : Kenneth Christensen


Dato : 10-04-07 08:15

Hejsa.

Mange tak for dit hurtige svar, fandt frem til at jeg i access databasen
bare kunne bruge Date$() som default værdi, og så have en sql streng der
ser således ud;

var insetReviewQuery = "INSERT INTO Reviewed (userName, rating, review,
movieId) VALUES ('" + rUserName + "', " + rRating + ", '" + rReview + "',
" + rMovieId + ")";

Access gør nemlig det, at den så automatisk smider dags dato ind på ny
linje og er derfor ikke nødvendig at have med i strengen.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408923
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste