![]() |
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? |
Re: DataGridView: DataError - wie behandeln?
*Push* ;-)
|
Re: DataGridView: DataError - wie behandeln?
*nochmalpush* :duck:
|
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: |
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. |
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:
Source kann/will ich nicht rausrücken, da es mit einer Pre-Release version von Chrome geschrieben ist. (Für mehr fehlte Zeit/Lust/... ;) )
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; |
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. |
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: |
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 ;-)
|
Re: DataGridView: DataError - wie behandeln?
Zitat:
Nimm' doch einfach den Filedisassembler im Reflector und mach' C# draus. ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 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