AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken NULL Werte aus mySQL pro Feld entfernen
Thema durchsuchen
Ansicht
Themen-Optionen

NULL Werte aus mySQL pro Feld entfernen

Ein Thema von Joerginger · begonnen am 2. Jun 2011 · letzter Beitrag vom 3. Jun 2011
Antwort Antwort
Seite 1 von 2  1 2      
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: NULL Werte aus mySQL pro Feld entfernen

  Alt 2. Jun 2011, 14:20
Ein View ist eine Abfrage auf dem Server, auf dem man wie eine Tabelle zugreifen kann.

Komponenten gibt es Viele. Wie hast du auf MSSQL zugegriffen? ADO? Darf es etwas kosten?

Zeos, MyDAC, dbExpress, ...
Markus Kinzler
  Mit Zitat antworten Zitat
Joerginger

Registriert seit: 22. Jan 2009
Ort: Wien
38 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: NULL Werte aus mySQL pro Feld entfernen

  Alt 2. Jun 2011, 15:05
Oh, danke für die Infos.

Meine Programmierphilosophie (und leider bin ich mit 46 Jahren schon seeeehr lange dabei) ist immer (noch): Was ich selber schreibe, kann ich auch selber korrigieren. MS-SQL greife ich via ADODB und DB zu, alles handgestrickt, keine Controls. ADOQUERY erzeugen, SQL-String absetzen, glücklich sein... Ich denke es ist zwar schwieriger als Klick Klick Programm fertig, aber eben auch wesentlich flexibler. Daher hab ich mich dann in das DP-Tutorial eingelesen "mySQL ohne Komponenten", dort greife ich dann auch über die mysql.pas direkt auf die DB zu, via libmysql.dll

Scheint mir sehr flott zu sein und wäre im Prinzip auch praktikabel. So exzessive G'schichten mach ich nicht. Bisschen Daten reinklopfen, Abfragen über 2,5 Millionen Adressen nach div. Kriterien. Oder in meiner Gastro-Lösung werden eben Zeilen mit Bestellungen und Abrechnungen gebucht.

Da MS-SQL bei 5 Usern in der Mini-Version sperrt, ich aber einige Kunden habe die zumindest 6-15 User benötigen... stehe ich vor der Entscheidung ob ich auf mySQL umsteige oder den Kunden (versuche) MS-SQL in "nicht gratis" umzuhängen...

Aber ich sehe grad wieder mal, dass ich um einen guten SQL-Kurs nicht herumkommen werde. Da fehlt mir einfach noch zu viel des Wissens...

GLG, Joerginger
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: NULL Werte aus mySQL pro Feld entfernen

  Alt 2. Jun 2011, 15:09
Per ADO sollte der Zugriff auf MySQL auch möglich sein.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

AW: NULL Werte aus mySQL pro Feld entfernen

  Alt 2. Jun 2011, 18:23
Ich denke deinem Problem kann man mit einer supersimplen Funktion begegnen:
Delphi-Quellcode:
function Coalesce(Value:Variant; default:Variant):Variant;
begin
  if VarIsNull(Value) then
    result := default
  else
    result := Value;
end;
Damit kann du nun so arbeiten:
Delphi-Quellcode:
Exies[i].name1:= Coalesce(_myRow[1], ''); //NAME1
Exies[i].name2:= Coalesce(_myRow[2], ''); //NAME2
Exies[i].Preis:= Coalesce(_myRow[3], 0.0); //VK Preis
Exies[i].Flag:= Coalesce(_myRow[4], False); //boolean Flag
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: NULL Werte aus mySQL pro Feld entfernen

  Alt 2. Jun 2011, 18:28
Wenn ich richtig verstanden habe, knallt es aber schon beim Zugriff auf
_myRow[<index>]
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

AW: NULL Werte aus mySQL pro Feld entfernen

  Alt 2. Jun 2011, 18:45
Wenn ich richtig verstanden habe, knallt es aber schon beim Zugriff auf
_myRow[<index>]
Stellt sich die Frage, welcher Datentyp steckt hinter _myRow[<index>] .
Ist das etwa wirklich ein PChar?
Und ist _myRow[<index>] = nil wenn das angesprochene Feld den Inhalt NULL hat?

Und warum muss man wirklich auf alles verzichten, was Delphi so einfach und genial macht?

PS: ich würde so ein "Ärztepaket" 5 mal schneller programmieren, einfach dadurch dass ich alles verwende
was mir Delphi zur Verfügung stellt.

Geändert von sx2008 ( 2. Jun 2011 um 18:48 Uhr)
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: NULL Werte aus mySQL pro Feld entfernen

  Alt 2. Jun 2011, 18:32
Da MS-SQL bei 5 Usern in der Mini-Version sperrt, ich aber einige Kunden habe die zumindest 6-15 User benötigen... stehe ich vor der Entscheidung ob ich auf mySQL umsteige...
Wenn schon Umstieg, warum nicht auf Firebird oder PostgreSQL? Mit MySQL handelst du dir da nur die Lizenzproblematik ein. Gerade wenn es um Geld geht -> Firebird oder PostgreSQL.
  Mit Zitat antworten Zitat
Joerginger

Registriert seit: 22. Jan 2009
Ort: Wien
38 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: NULL Werte aus mySQL pro Feld entfernen

  Alt 2. Jun 2011, 18:42
sx2008's Idee wäre durchaus gut, aber wie mkinzler schon richtig bemerkt hat, pfeffert es das Programm sofort auf, wenn ich versuche _myRow[<Index>] in irgendeiner Form abzufragen oder umzuwandeln, dieweil's vom Typ her PChar ist (Für die Lesbarkeit meines Codes ist's allerdings ein Segen, diese Prüfung als eigene function auszuführen und aufzurufen...)

@omata: hat natürlich auch andere Gründe, warum ich mySQL präferiere. Z.B: Du kannst eine NAS (von QNAP) hernehmen und schwupps, mySQL läuft drauf. Und auch 2 oder 3 Systeme, die ich zur Wartung übernehmen werde (darunter auch ein Ärztepaket / Ordiverwaltung) hat als Basis mySQL... Inwiefern meinst Du "wenn es um's Geld geht"???

Prinzipiell gefällt mir ja der Zugriff ohne Komponenten total gut und (sogar über's Netzwerk) geht das Teil extrem flott, mit genau einer solch erwähnten NAS

GLG, Mr. Joerginger
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: NULL Werte aus mySQL pro Feld entfernen

  Alt 2. Jun 2011, 18:53
Er spielt darauf an, dass MySQL beim kommerzeillen Einsatz nicht gerade wenig kostet. Die freie Version gibt es nur für OpenSource-Projekte.
Markus Kinzler
  Mit Zitat antworten Zitat
Joerginger

Registriert seit: 22. Jan 2009
Ort: Wien
38 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: NULL Werte aus mySQL pro Feld entfernen

  Alt 2. Jun 2011, 19:54
Nö, myRow[<Index>] liefert $11305819 (schlagmichtot), zeigt also auf Nonsens...

Und btw: ich hab mal ein Ärztepaket (begonnen) zu entwickeln, da kommst Du niemals nicht nach... Da ist so viel zu tun, und was am allerschlimmsten ist: Du musst den Topfen mit der Abrechnung von der Krankenkasse prüfen lassen.

Btw: Es gibt scheints genau NULL Möglichkeiten, den PChar zu Variant zu machen (bzw. den Inhalt wo der Teifl hinzeigt...). Ich mutmaße jetzt mal: wenn ich alle Felder einer Tabelle mit mehr Feldern mit ISNULL(FN,'''') zusammenstellen lasse wird's wohl doch irgendwann auf die Performance des mySQL gehen

Allerdings war ich der (scheint's irrigen) Meinung, dass die DB mySQL gratis verwendet werden darf

GLG, Mr. Joerginger
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz