Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid und Count(*) (https://www.delphipraxis.net/80905-dbgrid-und-count-%2A.html)

Sidorion 17. Nov 2006 10:33

Datenbank: Oracle • Version: 9.2 • Zugriff über: ADO

DBGrid und Count(*)
 
Folgendes Problem: Ich habe ein Memo, ein ADODataSet und eine DBGrid. Gibt man nun im Memo ein select-statement ein, wird dieses an das DataSet übergeben und die Grid stellt das Ergebnis dar.

Heisst nun eine Spalte 'Count(*)', wird die entsprechende Ergebnisspalte dermaßen breit, dass nichtmal meine 1600er Auflösung mitkommt.
Bei normalen Datenbankspalten macht ers richtig.

Nun die Frage: Kann man die DBGrid oder das DataSet irgendwie veranlassen, diese Spalte in vernünftiger Breite anzuzeigen, und wenn ja, wie?

hoika 17. Nov 2006 11:00

Re: DBGrid und Count(*)
 
Hallo,

Select Count(*) As Cnt ?


Heiko

Sidorion 17. Nov 2006 11:09

Re: DBGrid und Count(*)
 
negativ. Hat nix mit dem Namen des Kindes zu tun. Sind wohl alle Aggregatsfunktionen betroffen. Also sobald ein Statement eine beliebige Aggregsatsfunktion enthält, wird die Spalte eeeewig lang.

mkinzler 17. Nov 2006 11:13

Re: DBGrid und Count(*)
 
Schon mit CONVERT probiert?

Sidorion 17. Nov 2006 11:25

Re: DBGrid und Count(*)
 
Ich hab jetzt anders gelöst: Nach dem Ausführen des SQL-Statements weden alle Spalten auf eine einstellbare Maximalbreite beschränkt.
Die manipulation des Statements wäre viel zu umständlich gewesen, trotzdem Danke für die Ideen.

Bernhard Geyer 17. Nov 2006 11:31

Re: DBGrid und Count(*)
 
Gehst Du über den MS Provider (viel Spaß damit)?

Hier wird (bei meinem Test) als Datentyp ftBCD mit der Länge 0 zurückgeliefert.

Bei verwendung eines nativen Treibers (ist eh empfehlenswert) bekomme ich ftFloat zurück.
Ich Tippe darauf das hier der MS Provider einfach Müll produziert.

Jasocul 17. Nov 2006 12:45

Re: DBGrid und Count(*)
 
Ich habe das Problem nicht. Benutze allerdings auch kein ADO, sondern native Komponenten. Außerdem habe ich Oracle 10. Aber wie Bernhard schon andeutet, dürfte das am Daten-Provider liegen.

Sidorion 17. Nov 2006 12:47

Re: DBGrid und Count(*)
 
Ich denke mal schon, dass ich den Oracle-Treiber nehm:
Provider=OraOLEDB.Oracle

..und ADO deshalb, weils beim Kunden laufen muss und da ist nur der Oracle-Client installiert.

Jasocul 17. Nov 2006 13:32

Re: DBGrid und Count(*)
 
Bei den Arbeitsplätzen, wo meine Anwendungen laufen, ist auch nur der Client installiert.
Probier doch mal mit dem DBTools den Zugriff. Das arbeitet auch mit nativen Komponenten.
Dort kannst Du SQL-Statements eingeben. Ist zwar nicht der aktuelle Programmstand, aber ein Versuch ist es Wert.

Sidorion 17. Nov 2006 13:49

Re: DBGrid und Count(*)
 
Schicke Geschichte, die DBTools, aber leider nicht brauchbar für unsere Datenbank, da wir oft CLOB Felder haben, in denen Text steht. Diesen müssen wir aber ansehen können (kann auch der dbexplorer nicht wenns mehr als ein Feld ist).

Aber wie gesagt, ich hab jetzt ne Standardfeldlängenbegrenzung (puh langes Wort) drin.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:51 Uhr.
Seite 1 von 2  1 2      

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