Autore Topic: [risolto] riversare array  (Letto 676 volte)

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
[risolto] riversare array
« il: 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
« Ultima modifica: 01 Ottobre 2010, 23:24:11 da dex »

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: riversare array
« Risposta #1 il: 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>

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: riversare array
« Risposta #2 il: 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.

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: riversare array
« Risposta #3 il: 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

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: riversare array
« Risposta #4 il: 01 Ottobre 2010, 23:23:50 »
Grazie funziona

ps. per l'aiuto ti abbuono 20 punti sulla storia del desire  ;D ;D

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: riversare array
« Risposta #5 il: 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 

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: [risolto] riversare array
« Risposta #6 il: 01 Ottobre 2010, 23:33:14 »
meglio ancora
evito l'array

ok. mi hai convinto altri 90 punti abbuonati