AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi FieldByName oder FieldValues ?
Thema durchsuchen
Ansicht
Themen-Optionen

FieldByName oder FieldValues ?

Ein Thema von moebus · begonnen am 12. Nov 2005 · letzter Beitrag vom 12. Nov 2005
Antwort Antwort
moebus

Registriert seit: 3. Aug 2005
7 Beiträge
 
Delphi 7 Professional
 
#1

FieldByName oder FieldValues ?

  Alt 12. Nov 2005, 16:05
Datenbank: MysQL • Version: 4 • Zugriff über: MyDac
Ich hätte da eine Frage zum Auslesen bzw. Schrieben von Datenfeldern in Query's.

Wenn ich Daten Auslesen oder schreiben möchte nutze ich meist die Syntax :

 Query1.FieldByName('Feldname').value; Das selbe Ergebniss produziere ich aber auch mit

quer1.Fieldvalues['feldname']; Wenn ich nun Zuweisungen in der Form mache

 Query1.Fieldbyname('feldname').value:=query2.FieldValues['Feldname']; habe ich des öfteren das Problem das ich die Fehlermeldung erhalte das das Feld nicht als Type Variant angesprochen werden kann. Dies passierte bislang immer bei Integerzuweisungen, so das ich dann folgende Sytanx verwenden musste um den Typ zu definieren.

Query1.Fieldbyname('feldname').asinteger:=query2.FieldValues['Feldname']; Die Delphi Eingabehilfe gibt mir auf der linke Seite die Funktion FieldByName auf der rechten Seite der Zuweisung nur die Möglichkeit FieldValues zu benutzen. Trotzdem kann ich auf beiden Seiten auch z.B. FieldByName verwenden.

Daraus resultieren nun einige Fragen

1. Was ist eigentlich nun der Unterschied zwischen FieldByName und Fieldvalue? Das enzigste was ich erkennen kann ist das FieldValue immer vom Typ Variant ist, während ich bei FieldByName sowohl mit dem Type Variant (.value), als auch mit Typzuweisungen arbeiten kann(.asstring ectr.)

2. Wann sollte man welche Version nehmen, bzw. ist es sinvoll bei Zuweisungen beide Varianten zu mischen, so wie Delphi es offenbar will?

3. Warum kommt ein Typfehler bei der oben bereits erwähnten Variante wenn Integer Werte von einem Query aufs andere zugewiesen werden soll (beide Feldnamen sind vom Typ int) und z.B. bei Stringzuweisungen nicht.

 Query1.Fieldbyname('feldname').value:=query2.FieldValues['Feldname'];
4. Sollte evtl. ein Type nur zum auslesen der Daten sein (FieldValues) und einer nur zum schreiben (FieldByName) ????


Im Moment verwende ich überwiegend FieldByName mische aber auch ab und an, da beide Versionen tadellos arbeiten.

Für eine Aufkärung eurerseits sage ich schon mal im voraus danke.

Mfg

Moebus
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: FieldByName oder FieldValues ?

  Alt 12. Nov 2005, 16:24
Moin,

ich verwende immer FieldByName und dann niemals value. Mit dem Datentyp variant solltest du meiner Meinung nicht arbeiten. Dieser wird nur benötigt, wenn man z.B. Ole-Anwendung schreibt.
Aber bei einer DB-Anwendung brauchte ich das bisher noch nie. Du solltest Typsicher programmieren und das schliesst variant aus. Typsicherheit bringt einem nicht die volle Sicherheit das alles immer geht, ist aber schon mal ein wichtiger Schritt zu einer stabilen Anwendung.

Also vergiss variant.
Benutze FieldByName('???').As??????


MfG
Thorsten
  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:01 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