Avatar billede iceyblue Nybegynder
20. marts 2004 - 15:45 Der er 29 kommentarer og
1 løsning

Access databse driller

Hejsa...

Jeg vil lige høre jer...når jeg instætter 31 værdier i en access databse....hviket rækkefælge regner databsen så de kommer i...
ja man skulle da tror den rækkefølge kolonner var i, i selve databasen....men sådan virker det åbenbart ikke???

Jeg har opretter div. 31 kolonner i databsen...og et tilsvarende dataset/skema til mit projekt...jeg har ændret kolonernes rækkefølge så de matcher skemaet inde i VS. dan den opstiller dem alfabetisk hvilket gør det nemmere at overskue...

Men den indsætter værdierne i en helt forkert rækkefølge...hvordan kan den det???

mvh. IceyBlue
Avatar billede arne_v Ekspert
20. marts 2004 - 15:49 #1
Prøv at angive felterne eksplicit a la:

INSERT INTO tabelnavn (felt1,felt2,felt2) VALUES(123,'ABC','Dette er en test')
Avatar billede arne_v Ekspert
20. marts 2004 - 15:50 #2
Så har du ihvertfald fuld kontrol over det.
Avatar billede iceyblue Nybegynder
20. marts 2004 - 17:07 #3
hhhmm....Jeg har gjort det du sagde...men den brokker sig over fejl i SQL statementet...men jeg har nærstuderet det lige siden du skrev...og kan simplethen ikke finde en fejl i det...:( hvad skal jeg gøre?
Avatar billede arne_v Ekspert
20. marts 2004 - 17:10 #4
Prøv lige at poste det relevante kode fragment samt den præcise fejl besked.
Avatar billede iceyblue Nybegynder
20. marts 2004 - 17:18 #5
string SQLIndsætKommando = "INSERT INTO tabelPatientResultater (Bruger,CprNr,DatoITicks,FortløbendeSekvensNr,GRA#,GRA%,HCT,HGB,Id,KontrolPrøve,LYM#,LYM%,MCH,MCHC,MCV,MicrosDato,MON#,MON%,MPV,Navn,PatientPrøve,PCT,PDW,PLT,RBC,RDW,Tid,TildeltSekvensNr,Type,WBC,YderNr) VALUES('Martin','1234567890','12345678901234567890','999','11.1111','1.1','1.1','1.1','12231423','1','1.1','1.1','1.1','1.1','1.1','11/3-2004','1.1','1.1','1.1','hhmm','1','1.1','1.1','1.1','1.1','1.1','13.03.45','1','mand','1.1','e1232')";

hhmm...kan ikke få den til at skrive fejlmeddelsen ud i consol så jeg kan kopierer den...og der er jo ikke mulighed derinde for at post billeder vel...? kan jeg sende en mail?
Avatar billede iceyblue Nybegynder
20. marts 2004 - 17:19 #6
sorry....der var fejl i....:

string SQLIndsætKommando = "INSERT INTO tabelPatientResultater (Bruger,CprNr,DatoITicks,FortløbendeSekvensNr,GRA#,GRA%,HCT,HGB,Id,KontrolPrøve,LYM#,LYM%,MCH,MCHC,MCV,MicrosDato,MON#,MON%,MPV,Navn,PatientPrøve,PCT,PDW,PLT,RBC,RDW,Tid,TildeltSekvensNr,Type,WBC,YderNr) VALUES('Martin','1234567890','12345678901234567890','999','11.1111','1.1','1.1','1.1','12231423','1','1.1','1.1','1.1','1.1','1.1','11/3-2004','1.1','1.1','1.1','hhmm','1','1.1','1.1','1.1','1.1','1.1','13.03.45','1','mand','1.1','e1232')";
Avatar billede iceyblue Nybegynder
20. marts 2004 - 17:20 #7
aarrgg....den klipper hele tiden noget af det jeg skriver!!??
Avatar billede arne_v Ekspert
20. marts 2004 - 17:21 #8
Er alle felterne text og ikke number ?  (du bruger '' omkring alt)
Avatar billede iceyblue Nybegynder
20. marts 2004 - 17:21 #9
en gang til....nu har jeg prøvet at opdele teksten i 2 dele...hvis det ændrer noget??

string SQLIndsætKommando = "INSERT INTO tabelPatientResultater (Bruger,CprNr,DatoITicks,FortløbendeSekvensNr,GRA#,GRA%,HCT,HGB,Id,KontrolPrøve,LYM#,LYM%,MCH,MCHC,MCV,

MicrosDato,MON#,MON%,MPV,Navn,PatientPrøve,PCT,PDW,PLT,RBC,RDW,Tid,TildeltSekvensNr,Type,WBC,YderNr) VALUES('Martin','1234567890','12345678901234567890','999','11.1111','1.1','1.1','1.1','12231423','1','1.1','1.1','1.1','1.1','1.1','11/3-2004','1.1','1.1','1.1','hhmm','1','1.1','1.1','1.1','1.1','1.1','13.03.45','1','mand','1.1','e1232')";
Avatar billede arne_v Ekspert
20. marts 2004 - 17:21 #10
Jeg kan ikke lide feltnavnene med # og % i !

Prøv evt. at sætte dem i [].
Avatar billede iceyblue Nybegynder
20. marts 2004 - 17:23 #11
nej det er det ikke......dvs. det er det lige nu...pga. jeg endnu ikke har fået lavet det færdigt.....det virker når jeg IKKE angiver parametrenes rækkefølge...men så indsætter den det i den forkerte rækkefølge :( ???
Avatar billede iceyblue Nybegynder
20. marts 2004 - 17:24 #12
jamen vil den da opfatte [#] som #...eller?
Avatar billede iceyblue Nybegynder
20. marts 2004 - 17:26 #13
[]....virkede ikke...:(
Avatar billede arne_v Ekspert
20. marts 2004 - 17:26 #14
Som hovedregel mener jeg at man skal bruge [] omkring feltnavne som ikke
er normale kun engelske bogstaver og tal.
Avatar billede arne_v Ekspert
20. marts 2004 - 17:26 #15
Hvad fejl får du ?
Avatar billede iceyblue Nybegynder
20. marts 2004 - 17:26 #16
jeg ændrede dem kun ved parametrene...skulle jeg også ændre dem i databasen??
Avatar billede arne_v Ekspert
20. marts 2004 - 17:28 #17
Nej
Avatar billede iceyblue Nybegynder
20. marts 2004 - 17:38 #18
NU VIRKER DET!!! Jeg ændrer # til et a og % til et p i databasen....så afprøvede jeg det UNDEN parametrene...der virkede det....og så satte jeg dem til....og nu virker det...den skriver det hele i rigtig rækkefølge nu...;)

læg et svar og få points!
Avatar billede arne_v Ekspert
20. marts 2004 - 17:41 #19
Godt at det virker
Avatar billede iceyblue Nybegynder
20. marts 2004 - 17:46 #20
hov...har lige et spg...nu er det jo tid til at jeg def. de rigtige kolonne typer...MEN den klasse som jeg tilgår databasen er en generel klasse jeg har lavet som gerne skulle kunne genbruges senere eller af andre...og derfor dutter det jo ikke hvis jeg def. strukturen på datasettet inde i den...lige nu modtager klassen en database forbindelse og en SQL forespørgsel, for at kunne returnerer en datatabel med evt. matchende rækker...kan jeg def. i access databasen typen på hver enkelt kolonne....?? elller skal jeg ordne hele datasættet og så også sende det til min genbrugelige klasse...?? Det synes jeg bare virker lidt besværligere...
Avatar billede arne_v Ekspert
20. marts 2004 - 17:52 #21
En INSERT statement vil altid være tabel specifik.

Hvis kode skal kunne lave INSERT til mange forskellige tabeller, så skal
INSERT statement opbygges dynamisk.

Du kan f.eks. have en metode:

void insert(string table, string[] fieldnames, object[] values)

og så looper du gennem arrayene og konstruerer INSERT dynamisk
og ved VALUES bruger du typen af værdien til at beslutte om du vil have
'' omkring eller ej.
Avatar billede arne_v Ekspert
20. marts 2004 - 17:53 #22
Jeg mener at .NET har features til at lave noget af dette for dig. Men det er jo
ikke sikkert at det matcher dine krav præcist.
Avatar billede iceyblue Nybegynder
20. marts 2004 - 18:37 #23
Ja det er muligt at lave et dataset/skema under design...men hvorfor kan jeg ikke oprette instanser af dette...det ville da være det smarteste...?
Avatar billede arne_v Ekspert
20. marts 2004 - 18:42 #24
Jeg mener at DataSet/DataAdapter kan indsætte rækker.

Men jeg har aldrig brugt dem, så jeg er ikke sikker - og kan heller ikke
fortælle hvordan.
Avatar billede iceyblue Nybegynder
20. marts 2004 - 18:46 #25
?? den forstod jeg...jeg benytter adapter og dataset/skema....og kan sætter typer på alle div. kolonner...men jeg kan KUN benytte den i samme klasse....jeg kan ikke oprette instanser af det...og så kan jeg jo ikke bruge det til noget...? Så bliver jeg måske alligevel nød til selve at lave det i hånden hver gangen...eller rettere lave en klasse som indholdet skemaet og som så blot returnerer det til en given klasse...
Avatar billede iceyblue Nybegynder
20. marts 2004 - 18:55 #26
hehe...har fundet ud af at pga at datasettet er "typed" så tilgår man det således :

navnet_på_dit_projekt.DataSet
Avatar billede iceyblue Nybegynder
20. marts 2004 - 18:58 #27
det passede ikke...det rigtige er selvfølgelig...

DataSet ds = navnet_på_dit_projekt.DataSet();
ds...
Avatar billede iceyblue Nybegynder
20. marts 2004 - 19:02 #28
ups...glemte lige ordet "new" imellem = og navnet_på....
Avatar billede iceyblue Nybegynder
20. marts 2004 - 19:36 #29
ARNE....jeg har brug for din hjælp endnu engang...jeg har rodet en den med det har database, dataset, skema osv. idag...og har egentlig fundet ud af at det er alt for besværligt at def. bestemte typer på et skemaet ...

Detfor tænkte jeg på...det er vel også lige meget at benytte det...jeg vel blot nøjes med at tjekke på de indtastede data i GUI'en...og hvis de alle er gyldige...så gemme dem i db...

Det er jo ikke skemaet som bestemmer hvor meget det fylder i databasen...det skal vel blot opfattes som et filter...således at forkerte typer ikke tillades at skrives til disk...

Tallet eks. 32 må jo fylde præcis det samme i databasen...ligemeget om det har været igennem skemaet eller ej....ikke sandt!???
Avatar billede arne_v Ekspert
20. marts 2004 - 19:53 #30
Ja. Hvor meget værdier fylder i databasen er helt uafhængig af hvilken
slags kode der gemmer dem.
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

IT-JOB