Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   C# DataGridView: DataError - wie behandeln? (https://www.delphipraxis.net/90431-datagridview-dataerror-wie-behandeln.html)

Phoenix 17. Apr 2007 13:32


DataGridView: DataError - wie behandeln?
 
Kurz und knapp: Blob (Byte[]) in Datagridview - zu der entsprechenden Spalte scrollen -> DataErrors ohne Ende.

Ich hab spontan nix gefunden wie ich die korrekt behandeln kann und in die entsprechenden Zellen z.B. den Text "[BLOB]" reinschreiben kann, so dass das überhaupt funktioniert. Hat mir wer ne Idee oder einen passenden link?

Phoenix 19. Apr 2007 12:37

Re: DataGridView: DataError - wie behandeln?
 
*Push* ;-)

Phoenix 26. Apr 2007 09:24

Re: DataGridView: DataError - wie behandeln?
 
*nochmalpush* :duck:

Elvis 3. Mai 2007 21:53

Re: DataGridView: DataError - wie behandeln?
 
Bin nicht so der DataGridView-Pro, aber warum muss der Byte array überhaupt bis dort mitgeschliffen werden?
Wie sieht denn dein Modell aus?
Ich verstehe nämlich nicht ganz, warum das Modell überhaupt noch rohe Bytes umherschleppt, vor allem da du es ja sogar an die UI binden willst... :gruebel:

Phoenix 4. Mai 2007 09:21

Re: DataGridView: DataError - wie behandeln?
 
Das ist ein natives SQL-Interface.

Will heissen, das Statement dass ich an die Grid hänge wird von irgend einem User frei parametrisiert eingegeben. Und wenn derjenige der die Statements und Parameter vorgibt so doof ist, und das Blob Feld halt in die Feldliste reinpackt, dann kann ich da leider nicht viel gegen tun. Es macht an der Stelle auch keinen Sinn das Blob-Feld zu selektieren, aber es ist nunmal möglich.

Da ich an der Stelle allerdings keine Kenntnis von der DB-Struktur habe (und ein Auslesen und Vergleich der Felder zu viel Overhead wäre) kann ich das nicht verhindern. Also muss ich den daraus resultierenden Fehler abfangen. Blöderweise schlägt der halt nur dann auf, wenn das Blob-Feld gezeichnet werden soll und nicht schon beim Binden - weil dann könnte ich die Source einfach wieder sofort abhängen und ne Meldung anzeigen, dass Blob Felder nicht erlaubt sind.

Elvis 4. Mai 2007 12:15

Re: DataGridView: DataError - wie behandeln?
 
Liste der Anhänge anzeigen (Anzahl: 2)
Bevor du mir noch mehr Spam schickst ( :P ) habe ich mal einen Teil meiner Mittagspause geopfert...
Die angehängte Lib enthält einen Wrapper für einen DataReader, der einfach aus Blobfield eine StringField macht und einen gewünschten Text darstellt:
Delphi-Quellcode:
using command := connection.Createcommand() do
begin
  command.CommandText := 'SELECT * FROM BlobTest';
  using reader := new BlobMaskingDataReader(command.ExecuteReader()) do
  begin
    reader.BinaryDisplayName := 'Nix da!';
    var table := new DataTable();
    table.Load(reader);
    dataGridView1.DataSource := table;
  end;
end;
Source kann/will ich nicht rausrücken, da es mit einer Pre-Release version von Chrome geschrieben ist. (Für mehr fehlte Zeit/Lust/... ;) )

Phoenix 4. Mai 2007 12:21

Re: DataGridView: DataError - wie behandeln?
 
:cry: Damit kann ich nun gaaaar nix anfangen weil externe Libraries nicht möglich sind (Eine der Vorraussetzung für die ISO-Zertifizierung ist, das jederzeit Code-Reviews durch den Kunden möglich sein müssen).

*seufz* Dann müssen wir halt damit leben dass es dem Kunden um die Ohren knallt.

Elvis 4. Mai 2007 12:41

Re: DataGridView: DataError - wie behandeln?
 
Menno! :evil: Dann musst du aber warten bis ich mal nix im Magen habe.
In C# interfaces zu implementieren ist absolut ekelerregend... :kotz:

Phoenix 4. Mai 2007 12:52

Re: DataGridView: DataError - wie behandeln?
 
Zur Not re-implementiere ich das kurz. Das eine Interface magst Du wirklich nicht rausrücken? Ich kann Chrome lesen ;-)

Elvis 4. Mai 2007 13:19

Re: DataGridView: DataError - wie behandeln?
 
Zitat:

Zitat von Phoenix
Zur Not re-implementiere ich das kurz. Das eine Interface magst Du wirklich nicht rausrücken? Ich kann Chrome lesen ;-)

Pah! :P
Nimm' doch einfach den Filedisassembler im Reflector und mach' C# draus. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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