AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Einträge in DB ändern bzw. einfügen bei relationalen DB's
Thema durchsuchen
Ansicht
Themen-Optionen

Einträge in DB ändern bzw. einfügen bei relationalen DB's

Ein Thema von DerMike · begonnen am 5. Mär 2007 · letzter Beitrag vom 7. Mär 2007
Antwort Antwort
DerMike

Registriert seit: 4. Jan 2007
21 Beiträge
 
#1

Einträge in DB ändern bzw. einfügen bei relationalen DB's

  Alt 5. Mär 2007, 00:02
Datenbank: SQL • Version: 2000 • Zugriff über: ADO
Hallo,

ich arbeite jetzt mit einer MSSQL Datenbank und habe ein kleines Problem.

Ich habe eine Datenbank mit den Tabellen _person und _anrede. In der Datenbank _anrede gibt es die Felder a_id, a_bez wobei a_id der PK ist und über AutoInc. arbeitet. Tabelle _person enthält die Felder p_id, p_a_id, p_vorname, p_nachname.

Jetzt habe ich ein Formular auf dem alle Einträge von _person angezeigt werden. Jetzt möchte ich, eine DBComboBox machen, in der Herr, Frau, etc. steht und nicht die ID. Trotzdem soll bei einer Änderung nur die ID in die Tabelle _person geschrieben werden. Wie kann ich das realisieren ohne einen zusätzlichen Zugriff über ADOquery bzw. ADOConnection zu machen.

Geht das irgendwie "automatisch" oder muss ich immer den momentan aktiven Wert aus der DBCombobox Komponente abgreifen? Wäre etwas umständlich meiner Meinung nach.

Für ein kleines Beispiel wäre ich übrigens sehr sehr dankbar. Also nur wenn es "automatisch" geht. Sonst bitte einen kleinen Hinweis wie sich das eigentlich nennt, was ich machen möchte. Ich finde leider nirgends Informationen dazu.

lg
Mike
----------
lg Mike
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Einträge in DB ändern bzw. einfügen bei relationalen DB'

  Alt 5. Mär 2007, 07:05
Moin Mike,

DBLookupComboBox heißt das Control, welches deinen Vorstellungen entsprechen sollte. DataSource zeigt auf deine Personentabelle und ListSource auf die Adressen - indirekt natürlich. Wenn du alle Peroneneinträge anzeigst, dann vielleicht in einem DBGrid? In dem Fall öffnest du einfach den Tabellen-Editor durch Doppelklick auf die DataSet-Komponente (ADOTable, ADOQuery, ADODataSet) für die Personen und fügst alle anzuzeigenden Felder hinzu, setzt die Schlüsselfelder auf unsichtbar und definierst ein neues Lookup-Feld.

Grüße vom marabu
Angehängte Dateien
Dateityp: zip ado-lookup_109.zip (2,0 KB, 14x aufgerufen)
  Mit Zitat antworten Zitat
DerMike

Registriert seit: 4. Jan 2007
21 Beiträge
 
#3

Re: Einträge in DB ändern bzw. einfügen bei relationalen DB'

  Alt 5. Mär 2007, 18:36
Hallo marabu,

danke für die rasche Antwort. Ich habe das jetzt probiert. Es wird mir jetzt so angezeigt wie ich es gerne hätte. Aber..

Ich wollte ja mit dieser Componente auch die Möglichkeit haben das Feld zu ändern. (Also den Key in Tabelle 1). Sobald ich allerdings einen Wert einstelle (egal ob es derselbe Wert ist der bereits in der Tabelle gespeichert ist) bekomme ich folgende Fehlermeldung.

Zitat:
Im Projekt ITDB.exe ist eine Exception der Klasse EDatabaseError aufgetreten. Meldung: 'Feld 'a_id' kann nicht als Typ Variant angesprochen werden'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
bzw.

Zitat:
Feld 'a_id' kann nicht als Typ Variant angesprochen werden.
Sonst bin ich glücklich mit der Lösung.

lg
Mike
----------
lg Mike
  Mit Zitat antworten Zitat
DerMike

Registriert seit: 4. Jan 2007
21 Beiträge
 
#4

Re: Einträge in DB ändern bzw. einfügen bei relationalen DB'

  Alt 7. Mär 2007, 14:45
Hallo,

ich habe den Fehler jetzt gefunden.

Ich habe meinen Fehler hier im Forum gesucht, leider ohne Erfolg. Danach habe ich über Google gesucht und bin auf einen Beitrag in diesem Forum gestoßen!

Also, mein Fehler war, dass mein Key bin "bigint" Feld war. Unter Delphi 7 funktioniert das anscheinend nicht. Ich habe den Feldtyp auf Integer geändert und jetzt funktioniert es.

Aber danke nochmal für die Hilfe

lg
Mike
----------
lg Mike
  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 17:17 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