Avatar billede nadia Nybegynder
02. februar 2000 - 13:39 Der er 6 kommentarer og
1 løsning

DBGrid

Kan nogen hjælpe`???
Jeg skal have en SQLstreng lagt ind i en DBGrid..Hvis jeg bruger DBGrid.Col(x,y) = Data1.recordset.fields.count, virker det ikke. Jeg får fejl på COL. Det samme gælder ved ROW. Hvad bruger jeg istedet ????? (sjensen...du sidder vel inde med svaret...)
Avatar billede sjensen Nybegynder
02. februar 2000 - 15:26 #1
ja, lad os nu set. Det er først når det virker hos dig der er rigtigt.

data1.recordset.fields.count er bare det antal records der blev fundet ved søgningen.

Felterne ligger i fields[x], anhængigt af hvad du har selected. Har du f.eks. brugt select * from får du alle felterne, og hvis der er 10 felter i hver record vil du skulle lave et loop for x fra 1 to 10 og så sætte:

dbgrid.col(x,y) = dataset.recordset.fields[x].text (jeg er ikke helt sikker på om det hedder text eller string eller hvad, men det ved du jo nok selv).

Men det var kun den første record og hvis du har fundet flere skal du loope igennem dit data1.recordset med first og next indtil eof.

eks.
data1.first
loop y fra 1 til data1.recordset.fields.count
  loop x fra 1 til 10
  sæt dbgrid.col(x,y) = data1recordset.fields[x].text
  endloop x
  data1.next
endloop y

Jeg beklager jeg ikke kan den helt korrekte syntax, men jeg regner med at du kan se fidusen i det jeg mener.

sjensen
Avatar billede nadia Nybegynder
02. februar 2000 - 21:54 #2
sjensen

Har fået det til at virke.
Data1.Recordset = SelectString
så enkelt....alle felter er på plads..
Meeeen når jeg loader formen får jeg fejlen : Object doesen't support this property or method.
Når jeg trykker 'OK' loader formen..
Ved søgning får jeg erroren igen, trykker 'OK' og de rigtige data bliver loaded i DBGriden....
Hvad er det for en fejl ?????
Og mest vigtigt..hvordan kan jeg løse den...
Avatar billede nadia Nybegynder
02. februar 2000 - 22:01 #3
sjensen
erstat recordset med RecordSource.....sorry
Avatar billede sjensen Nybegynder
03. februar 2000 - 11:00 #4
Nadia,

det er lidt svært at gennemskue ud fra det du nævner, men fejlmeddelelsen siger at du forsøger at bruge en property eller en metode som det pågældende object ikke kender. Men det kan ikke være noget en metode, eller property, du har navngivet i programmet for så ville du have fået en compilerfejl.

Når du siger at det sker både når du loader formen og når du søger: Udfører du automatisk søgningen når du loader formen, uden at du selv skal trykke på noget ?

Det tyder på at det er enten søgningen eller overførslen til gridden der er fejlen. Og jeg tænker på om dit dataset indeholder andre datatyper end strenge. Hvis du f.eks. bruger "select * from  ..." og dit dataset indeholder numeriske værdier, billeder (blob-felter) o.s.v. så vil du givetvis få fejlen når dette skal overføres til det enkelte felt i gridden. Da det er en DBGrid vil den selv forsøge at konvertere far forskellige værdier til den tekst den skal vise (tal vises jo også som tekst men internt bruges de som binære værdier) men nogle typer kan ikke vises i en grid (billeder f.eks) og det vil den forsøge at konvertere.

Prøv at ændre dit select statement til

Select felt1, felt2, felt3 from ...

og sørg for at de felter de selecter KUN er strenge og se om fejlen stadig opstår. Hvis ikke så prøv at tilføje de øvrige felter et efter et indtil fejlen opstår, så ved du hvad årsagen er. Derefter vil det være lettere at rette.

sjensen
Avatar billede nadia Nybegynder
03. februar 2000 - 12:37 #5
sjensen
Jeg har en knap til at aktiverer søgefunktionen. Strengen er bygget så du kan vælge felter, altså man tilføjer feltnavnet til strengen (som du sagde). Men det forklarer ikke at fejlen også kommer når formen loader.....
Avatar billede sjensen Nybegynder
03. februar 2000 - 13:02 #6
Nej, det er rigtigt.

Men, din grid er koblet på et table eller en query komponent (går jeg ud fra) og når man åbner enten tablet eller queryen forsøger systemet at udfylde gridden med de data der er i databasen. Og hvis du ikke har indtastet f.eks. et sql statement inden vil den givetvis melde en fejl. Måske fordi den så bruger default (f.eks. select * from..). Det er jeg ikke helt sikker på.

SKAL det absolut være en DBGrid ? Kunne du nøjes med en alm. grid (altså en ikke database aware grid) ? eller er der andre programmæssige årsager til at det skal være en dbgrid ?

Jeg mener, at hvis du kunne nøjes med en alm. grid ville du givetvis slippe for problemet ved opstart og så kun have det ved søgning, men det kan du så bedre håndtere.

sjensen
Avatar billede nadia Nybegynder
03. februar 2000 - 14:40 #7
sjensen

Jeg skal bruge en Grid man både kan oprette i og slette fra....
alm. Grid ????
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
Kurser inden for grundlæggende programmering

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