Avatar billede ladyhawke Novice
18. april 2006 - 10:42 Der er 8 kommentarer og
2 løsninger

Dato fra dataset til DB

Jeg har et dataset med nogle datoer i (fra en Ingres DB) og de skal så lægges i en ny Ingres DB, men hvordan gør jeg det?

Jeg kan godt tage tekstværdien fra dataset'et og forsøge at sætte den ind, men er det måden at gøre det på eller skal der mere til (en konvertering til date el.)

mit sql statement er dynamisk, så jeg har ikke defineret I/O parametre...
Avatar billede arne_v Ekspert
18. april 2006 - 13:31 #1
man kan godt kombinere dynamisk opbygning af SQL med parameters !

man skal bare tilføje de nødvendige parameters samtidigt med at de tilføjes
til SQL strengen
Avatar billede ladyhawke Novice
18. april 2006 - 14:15 #2
dette foregår via ODBC, men hvordan får jeg så lavet f.eks. nedenstående i et sql statement:
<dato fra dataset> < <Dags dato> (altå vælg alle datoer som ikke er i dag (eller nyere))

(dato fra dataset kan jeg hente ud som en streng)
Avatar billede ladyhawke Novice
18. april 2006 - 14:25 #3
jeg har i øvrigt ikke specielt brug for parametre her, det er ikke queries jeg laver her (deletes og inserts)
Avatar billede arne_v Ekspert
18. april 2006 - 14:32 #4
parameter kan lige så gidt bruges til delete og insert som select

og parameters loeser også dato formaterings problemet

men måske misforstår jeg problem stillingen

kan du skitsere nogle eksempel data og effekt ?
Avatar billede ladyhawke Novice
18. april 2006 - 14:39 #5
eks. på datoer fra dataset:
17.04.2006 10:33:13 (dsdato1)
18.04.2006 10:33:13 (dsdato2)

Dags dato (en eller anden funktion?)

Resultatet skal være at dsdato1 bliver medtaget, men ikke dsdato2 (når dags dato er den 18.) I dette tilfælde skal den slette alle data med dato før i dag, således at data fra i går, eller ældre, ikke længere findes i tabellen.

Jeg kan lave den sammenligning i ren T-SQL, men den her udgave kan jeg ikke helt gennemskue (er ikke så vant til at arbejde med ODBC). Det er altså ikke alene formattering, men hvordan finder jeg dags dato og tjekker om data skal med eller ej...

Jeg har testet at hvis jeg bare henter data fra samme tabel ind i dataset'et og skriver dem igen (som streng), så giver det ingen problemer.
Avatar billede arne_v Ekspert
18. april 2006 - 20:15 #6
umiddelbart ville jeg finde "nu" og beregne hvornaar der skal slettes
fra i din applikation og saa lave en SQL med parameters og indsaette
den beregnede vaerdi
Avatar billede ladyhawke Novice
19. april 2006 - 09:25 #7
Ok, jeg kan ret nemt finde datoen for i dag (lige nu = 19) via C#, men hvordan henter jeg datoen ud af det tidsstempel jeg har fra dataset'et (f.eks. 18.04.2006 10:33:13)? (den skal helst virke uanset om datoen er 01.##.... 30.##.... eller 4.##...)
Avatar billede ladyhawke Novice
19. april 2006 - 16:34 #8
har fundet en løsning nu, den passer til Ingres, som benyttes her:

DELETE FROM <table> WHERE date_trunc('day',<dato-kolonne der skal testes (hentes i kode)>) < date('today')

Den virker over ODBC, men jeg havde noget bøvl i starten, som sikkert skyldtes en kode-typo, men nu virker det i hvert fald

arne_v: læg et svar for indsatsen
Avatar billede arne_v Ekspert
20. april 2006 - 01:57 #9
det du henter ud af databasen er vel en DateTime ?

men skidt pyt nu virker det jo

og et svar
Avatar billede ladyhawke Novice
20. april 2006 - 11:00 #10
Ja det jeg henter ud af basen er en DateTime (eller hvad den nu hedder i Ingres), men når jeg håndterer dataset'et internt i koden er det som strenge, indtil jeg skal overskirve en datoværdi, så skal jeg lige finde ud af at konvertere en c# DateTime til et Ingres Time Stamp (som dato eksemplerne tidligere i dette spørgsmål)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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