PBOSL_ExDatabase lib
-
- Beiträge: 55
- Registriert: 26.10.2004 19:42
hi,
wäre ein noch weitere optionaler parameter. bin der meinun das es nicht erforderlich ist, da man den dsn name auch weitergeben kann und eigendlich immer eindeutig ist.
FF
wäre ein noch weitere optionaler parameter. bin der meinun das es nicht erforderlich ist, da man den dsn name auch weitergeben kann und eigendlich immer eindeutig ist.
FF

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
@Michael
Könntest DD ja mal eine PM schicken, ob er es aufnimmt, im nächsten
PBOSL Update.
Allerdings fehlt noch die Hilfe, hm...
Gruß
Thomas
Könntest DD ja mal eine PM schicken, ob er es aufnimmt, im nächsten
PBOSL Update.
Allerdings fehlt noch die Hilfe, hm...
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Update
Hi,
da Tailbite jetzt mit PB4.20 läuft
(Hier ein grossen Dank an die Entwickler von Tailbite)
ist jetzt die aktuelle Version für PB4.20 verfügbar
FF
P.S. Werde mich dann an die Hilfe setzen.
Download v1.09 (PB v4.20)
Download v1.08 (PB v4.02 und v4.10)
Hi,
da Tailbite jetzt mit PB4.20 läuft

ist jetzt die aktuelle Version für PB4.20 verfügbar

FF

P.S. Werde mich dann an die Hilfe setzen.
Download v1.09 (PB v4.20)
Download v1.08 (PB v4.02 und v4.10)
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
dige hat geschrieben:Kann man damit auch ermitteln wieviel Datensätze eine SELECT-Abfrage
zurück liefert
Code: Alles auswählen
Select Count(Feld) As Anzahl From Tabelle Where...
a²+b²=mc²
Danke Kiffi, das habe ich schon befürchtet. Es geht wirklich nur über
eine vorherige Count-Abfrage? Also quasi nicht alla:
NbRows = DatabaseRows (DbId)
Wenn man mit Joins und Subselects arbeitet wird das aber arg langsam..
Ich probier mal ob man mit ReDim was machen kann..
eine vorherige Count-Abfrage? Also quasi nicht alla:
NbRows = DatabaseRows (DbId)
Wenn man mit Joins und Subselects arbeitet wird das aber arg langsam..
Ich probier mal ob man mit ReDim was machen kann..
"Papa, ich laufe schneller - dann ist es nicht so weit."
Habs jetzt so gelöst ... und scheint ziemlich fix zu sein. Evtl. kann man
ja auch in 1.000er Schritten Dimensionieren...
ja auch in 1.000er Schritten Dimensionieren...
Code: Alles auswählen
; Ermittele Anzahl DataBase Rows und kopiere das Ergebnis
; in ein Array für komfortablen Zugriff..
; DiGe german forum 03/06/08
Global Dim ODBCData.s(0, 0)
Global Rows.l, Cols.l
Procedure.l ODBC_GetTable (DbId.l, SQL.s)
Protected Count.l = 100
; Global! Immer vorher zurücksetzen
Cols = 0
Rows = 0
If IsDatabase(DbId) And DatabaseQuery(DbId, SQL)
Cols = DatabaseColumns(DbId) - 1
Dim ODBCData.s( Cols, Count )
While NextDatabaseRow(DbId)
If Rows = 0
; Spalten Namen zuweisen
For i = 0 To ols
ODBCData( i, 0 ) = DatabaseColumnName(DBid, i)
Next
EndIf
Rows + 1
; Wenn Grenze erreich, Feld erneut vergrößern
If Rows > Count
Count + 100
ReDim ODBCData.s( Cols, Count )
EndIf
; Werte ins Feld übernehmen
For i = 0 To Cols
ODBCData( i, Rows ) = GetDatabaseString(DbId, i)
Next
Wend
Else
Debug DatabaseError()
EndIf
ProcedureReturn Rows
EndProcedure
"Papa, ich laufe schneller - dann ist es nicht so weit."
-
- Beiträge: 55
- Registriert: 26.10.2004 19:42
Du suchst ein Pendant zu odbc_num_rows() in PHP. Ich habe noch keinen ODBC Treiber gefunden bei der ich nach odbc_num_rows() NICHT -1 erhalten habe. Funktioniert so gut wie nie. (Access, DB2, SQL SERVER und Paradox getestet)
Mit deinem Beispiel durchläufst du ja leider auch alle Zeilen einmal.
Recht hast du, bei einer Micky Maus Abfrage kann ich die Query zweimal durchlaufen lassen, aber bei Subselects oder Unions dauert es einfach zu lange.
So mach ich es mit einer Linked List:
Mit deinem Beispiel durchläufst du ja leider auch alle Zeilen einmal.
Recht hast du, bei einer Micky Maus Abfrage kann ich die Query zweimal durchlaufen lassen, aber bei Subselects oder Unions dauert es einfach zu lange.
So mach ich es mit einer Linked List:
Code: Alles auswählen
NewList dump.s()
query.s= "Select * "
query.s+ "FROM retourentabelle "
If DatabaseQuery(0,query)
Anz_Spalten = DatabaseColumns(0)
While NextDatabaseRow(0)
values.s = ""
Columns.s = ""
For SpalteNr = 0 To Anz_Spalten - 1
columns+ DatabaseColumnName(0, SpalteNr)
If SpalteNr < Anz_Spalten -1
columns+ ","
EndIf
If DatabaseColumnType(0, SpalteNr) = 2
values+ "'" + GetDatabaseString(0,SpalteNr) + "'"
Else
values+ GetDatabaseString(0,SpalteNr)
EndIf
If SpalteNr < Anz_Spalten -1
values+ ","
EndIf
Next
AddElement(dump())
dump() = "insert into retourentabelle (" + Columns + ") values(" + values + ")"
Wend
EndIf
Debug CountList(dump())
PB 4.30 auf Windows Vista / XP SP2 und Linux