Jeg sidder med en mssql db og skal via ASP med en række datofelter. Når jeg indsætter en valid dato, så er der ingen problemer. Men i det øjeblik der ikke indsættes noget giver mssql en fejl. Det skal være muligt ikke at indtaste noget, og idéen er så, at der indsættes NULL i db. Jeg opfatter det som om den ikke bare kan tage en tom streng; dato = "". Følgende fejl fremkommer
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
Som om den opfatter en tom streng som en char, men hvad skal jeg give den for den opfatter det som NULL?
Kan du ikke bare lade være med at fylde noget i dato feltet. Så vidt jeg kan se prøver du at fylde en tom streng ind i et dato felt og den går ikke. Den accepterer kun data i dato format og ikke en streng.
Prøv derfor at lade være med at indsætte noget og se hvordan det går, du skal lige sikre dig at feltet godt må være tomt.
Jo jeg kan godt lade være, men problemet er bare at jeg gerne vil genbruge min sqlstreng hvor jeg har samtlige attributter med. Synes ikke det virker så cool med to strenge afhængigt af om datofelterne er udfyldt eller ej. Det bliver for meget slamkode, da der hører mange datofelter til hver.
Jeg er i tvivl om hvordan jeg skal lade være med at indsætte noget. insert into <table>(datefelt) values (datostreng) hvis jeg gerne vil benytte den samme sql streng hver gang, hvordan fylder jeg så ingenting i datostreng??
Det kan jeg godt se. Har du mulighed for at define default værdi på feltet som bruges hvis feltet ikke overføres. Umiddelbart kan jeg ikke se anden udvej end du strikker dit SQL sammen efter som du finder ud af om feltet er udfyldt eller ej
Hvis jeg ikke udfylder feltet fungerer det som det skal. Det er her jeg løber ind i at jeg skal specificere min SQL afhængigt af det indtastede, hvilket ikke er så smart, da det ikke kun er udfyldt eller ikke udfyldt. Der er nemlig mange datofelter, dvs. et kan være udfyldt mens et andet ikke er udfyldt.
Hvis man "hardkoder" NULL ind i sql'en, ja så virker det som det skal. Nu mangler jeg så bare at kunne videregive NULL til en variable så jeg kan gøre det lidt mere dynamisk. Datostreng = NULL giver det samme som Datostreng = 0, og i mssql er det 1/1 1900 og det holder ikke. Hvordan overfører jeg NULL til en variable? Skal jeg bruge noget typecasting, og i givet fald hvad?
darkstar --> nooo mener nu virkelig det? Hvad f.. skal jeg så gøre. Det fungerer som sagt hvis jeg hardkoder mig ud af det. Men nu er mit problem at jeg ikke kan sætte en variable til at indeholde NULL.
Hvis jeg må blande mig så drejer det sig til konkret om mssql (se header) og der er der ingen problemer med at sætte et datofelt til NULL (hvis selvfølig er defineret til at må indeholde NULL)
Synes godt om
Ny brugerNybegynder
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.