AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi table auf stringgrid abbilden
Thema durchsuchen
Ansicht
Themen-Optionen

table auf stringgrid abbilden

Ein Thema von boserPascal · begonnen am 11. Apr 2006 · letzter Beitrag vom 12. Apr 2006
Antwort Antwort
Seite 1 von 2  1 2      
boserPascal

Registriert seit: 4. Apr 2006
96 Beiträge
 
Delphi 5 Professional
 
#1

table auf stringgrid abbilden

  Alt 11. Apr 2006, 21:38
Datenbank: MS SQL Server • Version: 2005 • Zugriff über: ODBC Alias
Guten Abend,

worin besteht hier der Fehler? Das Programm soll aus einer beliebigen Datenbank von MS SQL Server Daten abholen und im Stringgrid darstellen (also eine Tabelle daraus). Alle Versuche sind bis jetzt gescheitert etwas anzuzeigen. Die Tabelle in der Datenbank soll 1:1 im Stringgrid abgebildet werden.

Der Ansatz ist aus einer ähnlich lautenden Diskussion, die aber auf DBGrid verwies, was mir in meinen Augen nichts bringt.

Delphi-Quellcode:
query1.sql.Add('SELECT * FROM tabelle');
query1.Open;
while not (table1.Eof) do
begin
     for x:=0 to Table1.FieldCount-1 do
         stringgrid1.Cells[x,Table1.RecNo]:=Table1.Fields[x].asString;
     table1.next;
end;
Vielen Dank im vorraus!
Stefan
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: table auf stringgrid abbilden

  Alt 11. Apr 2006, 21:44
Zitat:
Der Ansatz ist aus einer ähnlich lautenden Diskussion, die aber auf DBGrid verwies, was mir in meinen Augen nichts bringt.
Und warum nicht? Deshalb gibt es ja das DBGrid.
Und außerdem solltest du dich entscheiden ob Table oder Query. RecNo als Index ist auch nicht so gut, nimm lieber eine andere laufvariable.
Delphi-Quellcode:
query1.sql.text := 'SELECT * FROM tabelle';
query1.Open;
Query1.First;
y := 0;
while not query1.Eof do
begin
     for x:=0 to Query11.FieldCount-1 do
         stringgrid1.Cells[x,y]:=Query1.Fields[x].asString;
     Query11.next;
     inc(y);
end;
Markus Kinzler
  Mit Zitat antworten Zitat
boserPascal

Registriert seit: 4. Apr 2006
96 Beiträge
 
Delphi 5 Professional
 
#3

Re: table auf stringgrid abbilden

  Alt 11. Apr 2006, 22:20
Danke für die schnelle Antwort. Das Problem ist nur ,dass der Code von dir eine Schutzverletzung verursacht, seltsamerweise.
Das unten Query11 und oben Query1 steht ist sicherlich ein Tippfehler. Das mit dem Zusammenspiel der Komponenten wußte ich nicht diese Datenbank-Geschichte ist absolutes Neuland für mich.

Der Fehler ist im Anhang, er tritt nicht auf wenn ich Query1.FieldCount-1 durch 1 ersetz ab 2 kommt er wieder.

Der FieldCount hat einen Wert von 44, und der Fehler tritt au wenn der Index von Query1.Fields[x].asString größer 1 wird.


Zu der Frage warum nicht DBGrid, ich will die Daten in einer Tabelle speichern und auswerten ob das nun auch mit einem DBGrid geht, lass ich mich gerne eines besseren belehren (Ich programmier normalerweise kein Delphi). Auf jeden Fall hab ich alle Prozeduren bis jetzt mit Stringgrid realisiert und hatte keine Probleme. Hab vorher mySQL genommen, dass war bei weiten einfacher. Muß aber die Daten leider auf einen MS SQL Server legen.
Miniaturansicht angehängter Grafiken
error_933.jpg  
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#4

Re: table auf stringgrid abbilden

  Alt 11. Apr 2006, 22:30
Hi,

du brauchst mit einem DBGrid noch net mal ne Query. Das Grid an die DataSource binden, oeffnen, DataSource Active auf True und dir wird die gesamte Tabelle angezeigt!
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: table auf stringgrid abbilden

  Alt 11. Apr 2006, 22:37
Möglicherweise mußt du die Größe des Grids noch mit .ColCount und .RowCount anpassen.
Markus Kinzler
  Mit Zitat antworten Zitat
boserPascal

Registriert seit: 4. Apr 2006
96 Beiträge
 
Delphi 5 Professional
 
#6

Re: table auf stringgrid abbilden

  Alt 11. Apr 2006, 22:41
Zu dem Fehler noch mal, kann das am Datentyp liegen? Weil ich hab noch keine Tabelle auf dem Server und hab einfach eine von MS genommen aus der MASTER Datenbank.
Und wenn ich mir die Funktion Query1.Fields[x].asString genauer anseh bietet sie verschiedene Datentypen, wie mach ich dann aber ein Typcasting auf String bspw von Float?

Ich hab die Größe auf 50x50 da sollte eine 44x5 Tabelle reinpassen, aber Danke für den Hinweis.
Stefan
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: table auf stringgrid abbilden

  Alt 11. Apr 2006, 22:47
Zitat:
wie mach ich dann aber ein Typcasting auf String bspw von Float?
das macht das .asString
Markus Kinzler
  Mit Zitat antworten Zitat
boserPascal

Registriert seit: 4. Apr 2006
96 Beiträge
 
Delphi 5 Professional
 
#8

Re: table auf stringgrid abbilden

  Alt 11. Apr 2006, 22:54
Zitat von mkinzler:
Zitat:
wie mach ich dann aber ein Typcasting auf String bspw von Float?
das macht das .asString
Dann ist es aber seltsam das er die ersten beiden Spalten liest (0 und 1), denn Kopf liest er auch ohne Probleme.
Zu dem Vorschlag mit dem DBGrid kann ich da zellenweise was einlesen, den Wert schreibt eine procedure die von einem Event-handle ausgelöst wird? Weil .cells[] fehlt ja dort.

Noch zu der Query-Komponente kann ich die Verbindungs-Parameter im Programm übergeben, so dass der Verbindungsdialog nicht jedesmal erscheint?
Stefan
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: table auf stringgrid abbilden

  Alt 11. Apr 2006, 23:08
Zitat:
Noch zu der Query-Komponente kann ich die Verbindungs-Parameter im Programm übergeben, so dass der Verbindungsdialog nicht jedesmal erscheint?
In der ADOConnection .LoginPrompt auf false, und die Verbindungsparameter setzen.

Zitat:
Zu dem Vorschlag mit dem DBGrid kann ich da zellenweise was einlesen, den Wert schreibt eine procedure die von einem Event-handle ausgelöst wird? Weil .cells[] fehlt ja dort.
Ein DBGrid verbibdest du mit dem Query ( über DataSource) und das Grid wird automatisch mit den daten der Abfrage/Tabelle gefüllt.
Markus Kinzler
  Mit Zitat antworten Zitat
boserPascal

Registriert seit: 4. Apr 2006
96 Beiträge
 
Delphi 5 Professional
 
#10

Re: table auf stringgrid abbilden

  Alt 12. Apr 2006, 13:50
Zitat von mkinzler:
In der ADOConnection .LoginPrompt auf false, und die Verbindungsparameter setzen.

Ein DBGrid verbibdest du mit dem Query ( über DataSource) und das Grid wird automatisch mit den daten der Abfrage/Tabelle gefüllt.
ADOConnection finde ich bei mir nicht. Ich hab aber erfolgreich einen Weg über Database gefunden.

Die Frage ist eher ob ich das DBGrid zur Laufzeit manipulieren kann? Sprich bearbeiten.

Ich hab jetzt mal selbst eine Tabelle und Datenbank über Query erzeugt und siehe da es geht. Alle Daten (alle TEXT) werden eingelesen.
Jetzt ist nur noch das Problem wie stelle ich fest das die Tabelle/Datenbank schon vorhanden ist bzw so den Fehler auswerte, dass ich die SQL-Anweisung verwerfe?
Stefan
  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 12:57 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