AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Grosses DB-Feld in AccessTabelle erzeugen
Thema durchsuchen
Ansicht
Themen-Optionen

Grosses DB-Feld in AccessTabelle erzeugen

Ein Thema von torud · begonnen am 25. Mär 2004 · letzter Beitrag vom 26. Mär 2004
Antwort Antwort
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Grosses DB-Feld in AccessTabelle erzeugen

  Alt 25. Mär 2004, 15:41
Hallo Leute,

ich benötige in einer Access-Tabelle ein sehr grosses Textfeld für die Beschreibung einer Stadt. Es reichen mir also nicht die üblichen 255 Zeiche aus. Welches Feld kann anstatt dessen erzeugen und wieviel Platz für Beschreibungen hätte ich dann?

Am Rande noch gefragt: Wie könnte ich eventuell noch ein Logo oder Wappen dieser Stadt gleich noch mit der DB ablegen? Ich will nicht einen Zeiger oder einen Verweis darauf ablegen, sondern das Objekt selbst.

Vielen Dank
für Tipps
Danke
Tom
  Mit Zitat antworten Zitat
Delphi_Fanatic

Registriert seit: 24. Mär 2004
201 Beiträge
 
#2

Re: Grosses DB-Feld in AccessTabelle erzeugen

  Alt 25. Mär 2004, 15:52
Wieso nimmst Du in Access nicht einfach ein Memo-Feld für Deine Städte-Beschreibung ?
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Grosses DB-Feld in AccessTabelle erzeugen

  Alt 26. Mär 2004, 08:19
Nun es ging mir hierbei nicht um die Nutzung von Access, sondern um das Erzeugen eines solchen FeldTypen mittels Delphi.

Desweiteren interessierte mich, wie ich ein Bild der Stadt in der DB ablegen und aufrufen kann.

Hat sonst noch jemand Vorschläge?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Grosses DB-Feld in AccessTabelle erzeugen

  Alt 26. Mär 2004, 13:07
Der Datentyp LongText erzeugt ein Memo-Feld in der Tabelle.

Der Datentyp LongBinary erzeugt ein OLE-Objekt-Feld, das verwende ich immer, wenn ich Bilder oder andere BLOB's in meiner Access-Datenbank ablegen möchte.

Schau dir mal die Hilfe zu Access an, da werden die Datentypen alle beschrieben.

Via SQL-Anweisung CREATE TABLE lege ich meine Access-Tabellen an. Kannst du dir auch auf meiner HP unter Access-Tabelle anlegen genauer anschauen.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#5

Re: Grosses DB-Feld in AccessTabelle erzeugen

  Alt 26. Mär 2004, 16:11
Hallo und vielen Dank für die Tipps,

eines meiner Probleme ist, dass ich hier, wo ich gerade programmiere kein Access habe. Ich brauche nicht den Code zum erstellen einer Tabelle. Mir würde ein kleiner Schnipsel zum Erstellen einer solchen Spalte LongText oder blob für Delphi reichen, oder ein kleiner Schnipsel, mit dem ich den die bestehende Spalte von Text in Longtext wandeln kann.

Wer hat eine Idee ???
Ich suche seit vielen Tagen nach einer solchen Möglichkeit.
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Grosses DB-Feld in AccessTabelle erzeugen

  Alt 26. Mär 2004, 19:24
Sorry, willst du eine Tabelle erstellen, in der ein Memo und / oder ein Bild eingebunden werden? Dann solltest es etwa so gehen:
Code:
AdoQuery1.SQL.Text := 'CREATE TABLE Test(';
AdoQuery1.SQL.Add(' Memo LongText,');
AdoQuery1.SQL.Add(' Bild LongBinary)';
AdoQuery1.execSQL;
Willst du Daten in die Felder schreiben? Sollte beim Memo kein Problem sein, da du einfach ein TDBMemo als Eingabe- und Ausgabekomponente verwendest.

Bei Bildern ist es etwas aufwändiger, hier mußt du die Daten entweder über einen TBlobStream lesen bzw. schreiben oder mit einem Typecast via Assign zuweisen. Ein Beispiel zu letzterem findest du auf meiner HP: BLOB auslesen und BLOB schreiben. Das Verfahren funktioniert bei Access ähnlich wie bei Paradox (via BDE).

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#7

Re: Grosses DB-Feld in AccessTabelle erzeugen

  Alt 26. Mär 2004, 19:33
Hallo,

ich will mich ja nicht allzu dämlich anstellen, aber die tabelle ist schon da und mehr als voll mit Daten. Ich will/muss in die bestehende Tabelle eine Spalte einfügen.

Ich glaube mit dem oben vorliegenden Code würde ich die vorhandene Tabelle überschreiben und damit leeren???
Danke
Tom
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#8

Re: Grosses DB-Feld in AccessTabelle erzeugen

  Alt 26. Mär 2004, 20:17
Das waren 10 sekunden Google.
Demovideo für eine DB Oberfläche
Zum Schluss siehst du ein ALTER TABLE Statement.
Oder hier.

p.s.: Das Video im ersten Link zeigt ein Programm, dass auf hinterhältige Art versucht, den PL/SQL Developer zu kopieren... und kläglich scheitert.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#9

Re: Grosses DB-Feld in AccessTabelle erzeugen

  Alt 26. Mär 2004, 20:43
Hallo,

und vielen Dank.

Für alle, diees interessiert, wié´s funktioniert:

Code:
 
  DM.ADOTable1.Active:=true;
  DM.ADOQuery1.sql.Clear;
  DM.ADOQuery1.SQL.Add('ALTER TABLE countries ALTER description LongText');
  DM.ADOQuery1.ExecSQL;
In diesem Beispiel wird in der vorhandenen Spalte "Description" der Datentyp auf Longtext geändert.
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Grosses DB-Feld in AccessTabelle erzeugen

  Alt 26. Mär 2004, 22:12
Tja, es wäre vielleicht gut gewesen, wenn du gleich gesagt hättest, daß du in eine bestehende Tabelle weitere Spalten anfügen möchtest. Schau dir mal folgendes an:

Code:
  qryAlter.SQL.Text := 'ALTER TABLE Medium ADD COLUMN ArchivNr varchar(40) NULL;';
  qryAlter.ExecSQL;
  qryAlter.SQL.Text := 'ALTER TABLE Medium DROP COLUMN ArchivNr;';
  qryAlter.ExecSQL;
Mit dem ersten ALTER-Statement fügst du in einer Access-Tabelle eine neue Spalte hinzu, mit dem zweiten Alter-Statement löschst du eine Spalte.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  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 22:32 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