Seite 1 von 1

Database Handle

Verfasst: 30.08.2007 17:48
von mk-soft
Hi,
der Code geht leider nicht mehr weil wohl nicht mehr das richtige Handle zurück bekomme.

Code: Alles auswählen

Procedure.s GetTables(Datenbank)

  Protected hwnd.l, r1.l, len.l
  Protected *buffer
  Protected result.s
  
  hwnd = PeekL(IsDatabase(Datenbank) + 4)
  result.s = ""
  If hwnd
    r1 = SQLTables_(hwnd,0,0,0,0,0,0,0,0) & $FFFF
    Debug r1
    If r1 = 0 Or r1 = 1
      *buffer = AllocateMemory(256)
      SQLBindCol_(hwnd,3,1,*buffer,256,@len)
      While SQLFetch_(hwnd) & $FFFF = 0
        result + PeekS(*buffer, len) + ";"
      Wend
      FreeMemory(*buffer)
    EndIf
  EndIf
  ProcedureReturn result
  
EndProcedure
PB v4.10b3

FF :cry:

Verfasst: 01.11.2007 18:14
von mpz
Hi,

probierst mal hiermit

Code: Alles auswählen


; ab Purebasic 4.10 b3 


Procedure.s GetTables(Database) 
  SQLCancel_(PeekL(PeekL(IsDatabase(Database)+4)+4)) 
  res.w=SQLTables_(PeekL(PeekL(IsDatabase(Database)+4)+4),0,"%",0,0,0,0,0,0) 
  If res = 0 Or res = 1 ; #SQL_SUCCESS / #SQL_SUCCESS_WITH_INFO 
    While NextDatabaseRow(Database) 
      result.s + GetDatabaseString(Database,2) + ";"
    Wend 
  EndIf 
EndProcedure