![]() |
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? |
Re: DBGrid und Count(*)
Hallo,
Select Count(*) As Cnt ? Heiko |
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.
|
Re: DBGrid und Count(*)
Schon mit CONVERT probiert?
|
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. |
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. |
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.
|
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. |
Re: DBGrid und Count(*)
Bei den Arbeitsplätzen, wo meine Anwendungen laufen, ist auch nur der Client installiert.
Probier doch mal ![]() Dort kannst Du SQL-Statements eingeben. Ist zwar nicht der aktuelle Programmstand, aber ein Versuch ist es Wert. |
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. |
Re: DBGrid und Count(*)
Zitat:
Mir ging es aber im Moment nur darum, dass Du siehst, dass count(*) eine relativ kleine Spalte produziert. Dein Problem muss also etwas mit Deinen Komponenten zu tun haben. |
Re: DBGrid und Count(*)
Ich nutze die Standard ADO-Komponenten, die 'normalen' Datensensitiven kann ich nicht nutzen, da ich nicht davon ausgehen kann, dass die BDE installiert ist. Im moment werden jetzt alle Spalten auf eine Maximlabreite beschränkt, ich bin aber davon nicht wirklich begeistert, da so ja auch 'normale' Spalten begrenzt werden.
Vielleicht noch als Abregung für die DBTools: Bei meinem 'Explorer' ist unter der Ergebnisliste nochmal ein Memo, in dem der Inhalt der aktuell markierten Zelle angezeigt wird, damit kann man dann den Wert in die Zwischenablage kopieren. |
Re: DBGrid und Count(*)
Zitat:
Ich benutze ![]() |
Re: DBGrid und Count(*)
Zitat:
|
Re: DBGrid und Count(*)
Das Problem beim direkten Weg ist, dass ich nicht garantieren kann, dass das System auf einer Oracle-Datenbank läuft. Will heissen: Wir empfehlen unseren Kunden Oracle, aber wenn der Kunde partout eine andere Datenbank haben will, müssen wir damit leben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:35 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 by Thomas Breitkreuz