![]() |
Grosses DB-Feld in AccessTabelle erzeugen
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 |
Re: Grosses DB-Feld in AccessTabelle erzeugen
Wieso nimmst Du in Access nicht einfach ein Memo-Feld für Deine Städte-Beschreibung ?
|
Re: Grosses DB-Feld in AccessTabelle erzeugen
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? |
Re: Grosses DB-Feld in AccessTabelle erzeugen
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 ![]() Grüße Mikhal |
Re: Grosses DB-Feld in AccessTabelle erzeugen
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. |
Re: Grosses DB-Feld in AccessTabelle erzeugen
Sorry, willst du eine Tabelle erstellen, in der ein Memo und / oder ein Bild eingebunden werden? Dann solltest es etwa so gehen:
Code:
Willst du Daten in die Felder schreiben? Sollte beim Memo kein Problem sein, da du einfach ein TDBMemo als Eingabe- und Ausgabekomponente verwendest.
AdoQuery1.SQL.Text := 'CREATE TABLE Test(';
AdoQuery1.SQL.Add(' Memo LongText,'); AdoQuery1.SQL.Add(' Bild LongBinary)'; AdoQuery1.execSQL; 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: ![]() ![]() Grüße Mikhal |
Re: Grosses DB-Feld in AccessTabelle erzeugen
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??? |
Re: Grosses DB-Feld in AccessTabelle erzeugen
Das waren 10 sekunden Google.
![]() Zum Schluss siehst du ein ALTER TABLE Statement. Oder ![]() p.s.: Das Video im ersten Link zeigt ein Programm, dass auf hinterhältige Art versucht, den ![]() |
Re: Grosses DB-Feld in AccessTabelle erzeugen
Hallo,
und vielen Dank. Für alle, diees interessiert, wié´s funktioniert:
Code:
In diesem Beispiel wird in der vorhandenen Spalte "Description" der Datentyp auf Longtext geändert.DM.ADOTable1.Active:=true; DM.ADOQuery1.sql.Clear; DM.ADOQuery1.SQL.Add('ALTER TABLE countries ALTER description LongText'); DM.ADOQuery1.ExecSQL; |
Re: Grosses DB-Feld in AccessTabelle erzeugen
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:
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.
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; Grüße Mikhal |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:12 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