AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Parameter mit NULL-Wert füllen
Thema durchsuchen
Ansicht
Themen-Optionen

Parameter mit NULL-Wert füllen

Ein Thema von Nersgatt · begonnen am 21. Okt 2010 · letzter Beitrag vom 21. Okt 2010
Antwort Antwort
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

Parameter mit NULL-Wert füllen

  Alt 21. Okt 2010, 10:01
Datenbank: Firebird • Version: 2.5 • Zugriff über: DBExpress
Moin,

ich hab eine Problem Parametern, die ich mit Null-Werten füllen möchte.
In der Regel mache ich das so:
Delphi-Quellcode:
q.ParamByName('BLA').Clear;
q.ParamByName('BLA').DataType := ftInteger;
q.ParamByName('BLA').Bound := True;
Das funktioniert auch ganz wunderbar.

Nun hab ich aber den Fall, dass ich den Datentyp nicht kenne. Die 2. Zeile kann ich also nicht füllen. Lasse ich sie weg, bekomme ich die Fehlermeldung:
Zitat:
Der dbExpress-Treiber unterstützt den Datentyp TDBXTypes.UNKNOWN nicht. Fehlermeldung des Herstellers: unknown ISC error 0.
Da ich den Feldnamen kenne, der gefüllt wird, könnte ich natürlich den Datentyp aus den Systemtabellen auslesen und entsprechend setzen. Aber den Aufwand möchte ich vermeiden. Insbesondere weil der Programmteil möglichst schnell laufen soll. Da wäre es nicht so schön, 100000 mal den Datentyp auszulesen.
Gibt es eine andere Möglichkeit, den Parameter auf NULL zu setzen, ohne Kenntnis des Datentyps?

Jens
Jens
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#2

AW: Parameter mit NULL-Wert füllen

  Alt 21. Okt 2010, 10:29
Ich kann es nicht sicher sagen, aber vorstellen kann ich es mir nicht, weil ja die Grösse des Datenbereichs für die Datenübergabe eines Feldes vom Datentyp abhängt - auch wenn null übergeben wird, wird der Platz für die Daten reserviert.

Warum 100000 mal aus den Systemtabellen auslesen? Einmal aus den Tabellen auslesen und in einer geeigneten Struktur (Stringlist, hashmap o.ä.) speichern.
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: Parameter mit NULL-Wert füllen

  Alt 21. Okt 2010, 13:42
So hab ich es jetzt auch gelöst. Beim Start (einmal) die Feldtype in eine Liste einlesen und dann hinterher entsprechend wieder auslesen. Ist gar nicht mal so langsam geworden, wie ich befürchtet hab.
Jens
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:16 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