AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Blobs aus SQL Anfrage ausschliessen
Thema durchsuchen
Ansicht
Themen-Optionen

Blobs aus SQL Anfrage ausschliessen

Ein Thema von midrag · begonnen am 27. Jul 2005 · letzter Beitrag vom 8. Aug 2005
Antwort Antwort
Seite 1 von 2  1 2      
midrag

Registriert seit: 20. Jul 2005
9 Beiträge
 
#1

Blobs aus SQL Anfrage ausschliessen

  Alt 27. Jul 2005, 15:57
Datenbank: MySQL • Version: 4.0 • Zugriff über: dbExpress
Hallo,

ich habe folgendes Problem:

Ich spreche eine SQL Datenbank in einer Multiuserumgebung an. Die Tabellen bestehen aus gemischten Formaten (BLOB, INT, etc).

Da ich auch in die DB schreibe und über die dbExpress Komponenten zugreife habe ich in Delphi folgenden Aufbau:

SQLConnection -> SQL Table -> DataSetProvider -> ClientDataSet -> DataSource -> DBGrid

Im Grid soll das Feld der Tabelle mit dem Typ BLOB nicht angezeigt werden (allerdings brauche ich das Blob Feld später im Programm). Wie teile ich Delphi mit, dass es im Select Statement fürs DBGrid das BLOB Feld nicht berücksichtigt?

Danke im Voraus!,

midrag
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Blobs aus SQL Anfrage ausschliessen

  Alt 27. Jul 2005, 16:11
Hallo midrag,

setze doch mal die Eigenschaft Visible des entsprechenden Feldes auf FALSE.

Grüße vom marabu
  Mit Zitat antworten Zitat
WoGe

Registriert seit: 16. Jun 2005
Ort: Kelkheim
178 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Blobs aus SQL Anfrage ausschliessen

  Alt 27. Jul 2005, 16:59
Zitat von marabu:
setze doch mal die Eigenschaft Visible des entsprechenden Feldes auf FALSE.
Das nutzt leider garnix. Die Inhalte der Blobs werden trotzdem übertragen.
Ich denke man muss das select tatsächlich ohne BlobFeld ausführen. Die Blobs bekommt man dann übereine separate Query.

Gruss
wo
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Blobs aus SQL Anfrage ausschliessen

  Alt 27. Jul 2005, 17:02
Hallo WoGe,

Zitat von midrag:
Im Grid soll das Feld der Tabelle mit dem Typ BLOB nicht angezeigt werden (allerdings brauche ich das Blob Feld später im Programm). Wie teile ich Delphi mit, dass es im Select Statement fürs DBGrid das BLOB Feld nicht berücksichtigt?
Sollte ich das falsch verstanden haben?

marabu
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#5

Re: Blobs aus SQL Anfrage ausschliessen

  Alt 27. Jul 2005, 17:09
Durch einen Doppelklick auf DBGrid öffnet sich ein Fenster Columns bearbeiten. Dort kannst Du festlegen, welche Spalten im DBGrid angezeigt werden sollen.
  Mit Zitat antworten Zitat
WoGe

Registriert seit: 16. Jun 2005
Ort: Kelkheim
178 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Blobs aus SQL Anfrage ausschliessen

  Alt 27. Jul 2005, 17:11
Hallo marabu.

Zitat von marabu:
Sollte ich das falsch verstanden haben?
Sorry, nein nicht wirklich.

Ich ärgere mich nur mir genau so einem Problem rum. Ich will das Blobfeld eigentlich garnicht übertragen, brauche es aber. Es stellt genaugenommen den Grund für die gesammte Tabelle dar.

Da Blobs gross sind, habe ich vermutet das midrag deswegen das Blob nicht im DBGrid haben will.

mfg
wo
  Mit Zitat antworten Zitat
midrag

Registriert seit: 20. Jul 2005
9 Beiträge
 
#7

Re: Blobs aus SQL Anfrage ausschliessen

  Alt 28. Jul 2005, 08:08
Zitat von WoGe:
Hallo marabu.
Da Blobs gross sind, habe ich vermutet das midrag deswegen das Blob nicht im DBGrid haben will.
Es geht vielmahr darum, dass ich das Blob nicht fürs DBGrid brauche und deshalb auch nicht übertragen möchte(erst später wenn es benötigt wird). Die nicht benötigten Spalten habe ich aus dem DBGrid verbannt, er stellt aber trotzdem eine SELECT * FROM Anfrage.
Das Blobfeld wird aber nur relativ selten gebraucht, will es deshalb nicht ständig mit übertragen.

eine Möglichkeit wäre es die entsprechende Spalte aus der SQL Table zu löschen und einen zweiten Pfad mit einer weiteren SQLTable (+dsp, cds, ds)zu erzeugen und dort nur die Blobfelder einzutragen. Finde das aber ziemlich unelegant. Es stellt sich dann auch die Frage wieso man nicht gleich die Blobfelder in einer weiteren Tabelle speichert?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Blobs aus SQL Anfrage ausschliessen

  Alt 28. Jul 2005, 08:22
Hai midrage,

die BLOB-Felder in einer eigenen Tabelle zu speichern wäre natürlich eine Möglichkeit. Man müsste jetzt mal prüfen ob alleine durch das vorhandensein eines BLOB in einer Tabelle diese schon größer/langsammer wird.

Ansonsten kannst Du ja einfach mir:
SELECT pk_feld, feld1, feld2 ,feld3 FROM tabelle nur die Felder holen die Du auch benötigst.

Wenn dann doch der Inhalt des Blob-Feldes benötigt wird machst Du einfach mit einem zweiten Query
SELECT blob_feld FROM tabelle WHERE pk_feld = pk_feld.des_aktiven_DS_der_anderen_query
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
WoGe

Registriert seit: 16. Jun 2005
Ort: Kelkheim
178 Beiträge
 
Delphi 10.3 Rio
 
#9

Re: Blobs aus SQL Anfrage ausschliessen

  Alt 28. Jul 2005, 08:52
Moin,

Zitat von Sharky:
Man müsste jetzt mal prüfen ob alleine durch das vorhandensein eines BLOB in einer Tabelle diese schon größer/langsammer wird.
So der Client auf einem anderen Rechner läuft: nein

Zitat von Sharky:
Ansonsten kannst Du ja einfach mir:
SELECT pk_feld, feld1, feld2 ,feld3 FROM tabelle nur die Felder holen die Du auch benötigst.
Ich weiss leider nicht genug über MySQL aber in FB, IB und MSQL kann man auch einen VIEW oder eine SP machen die maqn mit
Select * form View aufrufen kann. Der Vorteil dabei, der Benutzer muss nichts über die Originaltabelle wissen.

Das Blobfeld wird dann, wie von Sharky gesagt, separat übertragen.

mfg
wo
  Mit Zitat antworten Zitat
midrag

Registriert seit: 20. Jul 2005
9 Beiträge
 
#10

Re: Blobs aus SQL Anfrage ausschliessen

  Alt 28. Jul 2005, 09:04
ja, auf MySQL Ebene würde das so funktionieren.
Ich arbeite aber der SQLTable Komponente und kann die Select Anweisung nicht manuell anpassen.
Um das Blobfeld aus der Anfrage zu entfernen müsste ich es aus Fields (SQLTable) löschen. Das klappt auch, leider kann ich das Blob Feld dann überhaupt nicht benutzen (kann zur runtime das Field auch nicht wieder einfügen ).
  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 09:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz