Kleine dynamische Datenbank im Interface-Stil

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8820
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Hab mittlerweile wieder ein paar kleine Fehler bei meiner Datenbank
gefunden. Aber hier im Klinikum ist auch immer Hardcore-Testen angesagt.
Also hier findet man öfter mal große komplexere Datenmengen.

Einen kleinen PB-Bug (siehe PB 4.0 Forum) habe ich auch noch umgangen
und jetzt siehts schon wieder richtig gut aus. Fehlt nur noch das mit dem
Spaltenlöschen. Aber da muss ich mich erstmal wieder reindenken.
Mittlerweile ist schon wieder soviel Zeit vergangen.

Wenn jemand trotzdem die aktuelle Version will, soll mir hier Bescheid sagen,
dann lad ich sie wieder hoch.

Ich bin auch noch am Überlegen, ob ich pro Datenbank einen Mutex einbauen
soll, damit sie auch Thread-sicher ist. Wär vielleicht gar keine so schlechte
Idee, oder?
Benutzeravatar
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

Beitrag von ts-soft »

NicTheQuick hat geschrieben: Wenn jemand trotzdem die aktuelle Version will, soll mir hier Bescheid sagen,
dann lad ich sie wieder hoch.
Bescheid
NicTheQuick hat geschrieben: Ich bin auch noch am Überlegen, ob ich pro Datenbank einen Mutex einbauen
soll, damit sie auch Thread-sicher ist. Wär vielleicht gar keine so schlechte
Idee, oder?
Wäre auf jedenfall ein nettes Feature :allright:

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.
Bild
Benutzeravatar
Kiffi
Beiträge: 10719
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

ts-soft hat geschrieben:
NicTheQuick hat geschrieben: Wenn jemand trotzdem die aktuelle Version will, soll mir hier Bescheid sagen,
dann lad ich sie wieder hoch.
Bescheid
DITO! :D

Danke & Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8820
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Da es gerade nicht anders geht, poste ich den Quellcode wieder in den ersten
Post.

Tut mir Leid wegen dem Scrollen... :wink:

Die wichtigsten Änderungen schreibe ich dazu.

///Edit:
So. Jetzt ist alles fertig. Wer Fragen hat, ich bin da! :allright:
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8820
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

ts-soft hat geschrieben:Wenn dann noch das indizieren über mehrere geöffnete Datenbanken
(Tabellen) gehen würde, wäre es bald perfekt :wink:
Mit der neuen Cheetah4.dll komme ich nämlich gerade nicht klar
Verstehe leider nicht, was du meinst. Erklär das mal genauer.

@all:
Hab wieder eine neue Idee bekommen, mit der man wie mit dem
Swap-Befehl von PB zwei Zeilen in der DB vertauschen kann. Durch meinen
internen Aufbau der Datenbank wird das sogar zum Kinderspiel, weil ich nur
zwei Pointer tausche muss.
Und wenn ich schonmal dabei bin, mache ich das selbe auch grad noch für
die Spalten.
Benutzeravatar
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

Beitrag von ts-soft »

NicTheQuick hat geschrieben:
ts-soft hat geschrieben:Wenn dann noch das indizieren über mehrere geöffnete Datenbanken
(Tabellen) gehen würde, wäre es bald perfekt :wink:
Mit der neuen Cheetah4.dll komme ich nämlich gerade nicht klar
Verstehe leider nicht, was du meinst. Erklär das mal genauer.
db1 enthält KundenNr und KundenNamen
db2 enthält KundenNr und Rechnungsbetrag

Jetzt soll er eine neue db erstellen, wo ich dem RechnungsBetrag den
KundenNamen zuordnen kann. Für alle Einträge natürlich, so das ich allen
Kunden eine Rechnung mit Namen schicken kann.

Grob umschrieben :D

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.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8820
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Ah, okay. Das ist doch etwas verständlicher.

Ich denke, die Sache werde ich einfügen, wenn ich das mit der indizierten
Spalte eingebaut habe.

Weitere Neuerungen seit heute:

-Added: GetLastError() : gibt die letzte Fehlermeldung als Nummer zurück
-Added: SetNoError() : setzt die letzte Fehlermeldung auf "NoError"
-Added: GetErrorText(Error.l) : gibt die letzte oder eine bestimmte Fehlermeldung als Text zurück
-Added: SwapCols() : Tauscht zwei Spalten
-Added: SwapRows() : Tauscht zwei Zeilen
-Fixed: DelCol() : funktioniert jetzt anstandslos, aber AddCol() ist noch nicht angepasst. Es gibt trotzdem keine Fehler, nur in bestimmten Situationen schlechte Speichernutzung
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Beitrag von Leonhard »

Wie wäre es mit einer Import-Funktion, womit man z.B. CSV-Dateien importieren kann? Damit wäre es einfach, Excel-Dateien zu importieren.
Benutzeravatar
Kiffi
Beiträge: 10719
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> Weitere Neuerungen seit heute:

ähm, ist der Code schon online? Ich finde GetLastError() weder im Code im
ersten Beitrag noch im Code, den ich herunterladen kann.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8820
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

@Leonhard:
So eine Funktion gibt es schon. LoadCSV() und SaveCSV()

@Kiffi:
Sorry, hab ich wohl bei dem Stress heute auf der Arbeit vergessen.
Ich lads gleich nochmal hoch. Muss erstmal den USB-Stick suchen.

///Edit 1:
So, ist jetzt oben und der erste Post ist geändert.

Ohje, das werden ja immer mehr Edits...

///Edit 2:
Ist schonmal jemandem aufgefallen, dass ich den ersten Post in diesem
Thread am 11.9. getätigt habe? Ich hab Angst... :shock: <)
Antworten