Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: dex - 01 Ottobre 2010, 22:14:33

Titolo: [risolto] riversare array
Inserito da: dex - 01 Ottobre 2010, 22:14:33
raga devo riversare un array in alcune label

toppo nel codice in quanto mi esce questo errore:
Citazione
Type mismatch: wanted Object, got integer instead

questo รจ il codice
Codice: [Seleziona]
DIM Msede AS NEW String[]

sql = "select * from databasesedi order by iddatabasesedi"
   MyRS = MODMain.MyConn.Exec(sql)
  
  IF MyRS.Available THEN
   Msede.Clear
   FOR EACH MyRS
   Msede.Add(MyRS!sede)
   NEXT    
  
  ENDIF

SELECT Msede
    CASE 0
      Label11.Caption = Msede[0]
    CASE 1
      Label12.Caption = Msede[1]
    CASE 2
      Label13.Caption = Msede[2]
    CASE 3
      Label14.Caption = Msede[3]
    CASE 4
      Label15.Caption = Msede[4]
    CASE 5
      Label16.Caption = Msede[5]
    CASE 6
      Label17.Caption = Msede[6]
    CASE 7
      Label18.Caption = Msede[7]
    CASE 8
      Label19.Caption = Msede[8]
    CASE 9
      Label20.Caption = Msede[9]
    CASE 10
      Label21.Caption = Msede[10]      
  END SELECT
Titolo: Re: riversare array
Inserito da: milio - 01 Ottobre 2010, 22:56:03
l'errore sta qui:

Codice: [Seleziona]
SELECT Msede 'questo e' un object string[]

    CASE 0 'qua gli chiedi se Object = integer

      Label11.Caption = Msede[0]

non riesco a capire che intenzioni hai con quel select case :-\

se vuoi semplicemente riempire le label allora togli il select case.
se invece vuoi riempire una label in particolare allora devi sostituire Select Msede con Select <un valore integer>
Titolo: Re: riversare array
Inserito da: dex - 01 Ottobre 2010, 23:14:51
nell'array ci sono i nomi delle sedi
per ora nelle prove ne carica solo 4 sedi
devo riversare le prime 11 stringhe contenute nell'array alle label, tipo array[0] label11 ecc..
nel mio caso essendoci solo 4 stringhe nell'array, mi deve versare dalla label 11 alla 14 lasciando tutte le altre vuote.

avevo messo il select in quanto ad array[4] essendo vuota mi dava errore.
Titolo: Re: riversare array
Inserito da: milio - 01 Ottobre 2010, 23:20:21
Allora potresti fare cosi'

Codice: gambas [Seleziona]
Dim Nx As Integer

For Nx = 0 to Msede.Max

  SELECT Nx
    CASE 0
      Label11.Caption = Msede[0]
    CASE 1
      Label12.Caption = Msede[1]
    CASE 2
      Label13.Caption = Msede[2]
    CASE 3
      Label14.Caption = Msede[3]
    CASE 4
      Label15.Caption = Msede[4]
    CASE 5
      Label16.Caption = Msede[5]
    CASE 6
      Label17.Caption = Msede[6]
    CASE 7
      Label18.Caption = Msede[7]
    CASE 8
      Label19.Caption = Msede[8]
    CASE 9
      Label20.Caption = Msede[9]
    CASE 10
      Label21.Caption = Msede[10]     
  END SELECT

NEXT
Titolo: Re: riversare array
Inserito da: dex - 01 Ottobre 2010, 23:23:50
Grazie funziona

ps. per l'aiuto ti abbuono 20 punti sulla storia del desire  ;D ;D
Titolo: Re: riversare array
Inserito da: milio - 01 Ottobre 2010, 23:24:55
Oppure senza scomodare l'array

Codice: gambas [Seleziona]
DIM Nx AS Integer  
 
FOR Nx = 0 TO MyRS.Max 
  MyRS.MoveTo(Nx)
  SELECT Nx 
    CASE 0 
      Label11.Caption = MyRS["sede"] 
    CASE 1 
      Label12.Caption = MyRS["sede"]
    CASE 2 
      Label13.Caption = MyRS["sede"]
    CASE 3 
      Label14.Caption = MyRS["sede"]
    CASE 4 
      Label15.Caption = MyRS["sede"]
    CASE 5 
      Label16.Caption = MyRS["sede"]
    CASE 6 
      Label17.Caption = MyRS["sede"]
    CASE 7 
      Label18.Caption = MyRS["sede"]
    CASE 8 
      Label19.Caption = MyRS["sede"]
    CASE 9 
      Label20.Caption = MyRS["sede"]
    CASE 10 
      Label21.Caption = MyRS["sede"]   
  END SELECT 
 
NEXT 
Titolo: Re: [risolto] riversare array
Inserito da: dex - 01 Ottobre 2010, 23:33:14
meglio ancora
evito l'array

ok. mi hai convinto altri 90 punti abbuonati