![]() |
Datenbank: Firebird • Version: 1.5.2.4731 • Zugriff über: IBX
BLOB SUB_TYPE TEXT nimmt nicht mehr als 255 Zeichen
Hallo,
seit mehreren Jahren verwende ich erfolgreich folgende Domian:
SQL-Code:
Ebenfalls verwende ich seit mehreren Jahren sehr erfolgreich Excel als Tabellenpflegeprogramm.
CREATE DOMAIN "TTEXTBLOB" AS BLOB SUB_TYPE TEXT SEGMENT SIZE 80 CHARACTER SET ISO8859_1;
D.h. ich editiere die Datensätze in einer Exceltabelle und tausche anschließend die komplette Tabelle in der Datenbank aus. Da es sich um max 4.000 bis 5.000 Datensätze handelt ist das eigentlich auch kein Problem. Jetzt kommt's: Wenn in einer Excelzelle mehr als 250 Zeichen stehen verwende ich als o.g. Domain. Das klappt hervorragend. Heute stellte sich heraus das in einer Tabelle folgende Domain nicht meher ausreicht.
SQL-Code:
Dehalb habe ich mit diesem Script aus dem Feld "FORMEL" ein TTextBlob gemacht:
CREATE DOMAIN "TSTRING250" AS VARCHAR(250) CHARACTER SET ISO8859_1 COLLATE DE_DE;
SQL-Code:
Dummerweise werden jetzt aber nur 255 in das Feld geschrieben (oder aus der Excelzelle gelesen).
ALTER TABLE PNK ADD FORMEL_TMP TSTRING250 COLLATE de_de;
UPDATE pnk SET FORMEL_TMP=FORMEL; ALTER TABLE PNK DROP FORMEL; ALTER TABLE PNK ADD FORMEL TTEXTBLOB; UPDATE pnk SET FORMEL=FORMEL_TMP; ALTER TABLE PNK DROP FORMEL_TMP; COMMIT; Wenn ich das Feld manuell in der IBOConsole editiere werden mehr als 255 übernommen. Es scheint also so zu sein, dass wenn ich das Feld in der Tabelle von Anfang an als TTextBlob anlege mehr als 255 Zeichen aus der Excelzelle gelesen werden und wenn ich es mit o.g. Script erzeuge nur 255 Zeichen. Kann das sein? Wenn ja - warum :gruebel: Ein Backup / Restore hat nichts geändert. |
Re: BLOB SUB_TYPE TEXT nimmt nicht mehr als 255 Zeichen
Wie versuchst du das Einzufügen?
|
Re: BLOB SUB_TYPE TEXT nimmt nicht mehr als 255 Zeichen
Zitat:
SQL-Code:
:F ist der Parameter
INSERT INTO tabelle (FORMEL) VALUES (:F)
|
Re: BLOB SUB_TYPE TEXT nimmt nicht mehr als 255 Zeichen
Hallo,
1. und wie sieht das zuweisen aus ? ParamByXXX ? da muss dann AsBlob stehen 2. Collate usw. hat bei Blobs nichts zu suchen. Ist halt ein Binärteil, du könntest auch ein Bild eintragen an der gleichen Stelle ;) Hier eine Funktion, die ich seit Jahren benutze. - TjifQuery kann durch TQuery ersetzt werden - DataBaseName muss natürlich geändert werden { name: UpdateTextBlobField_Ex usage: update a blob field parameter: theTableName - table name thePrimaryKeyName - name of the primary key thePrimaryKeyValue - value of the primary key theFieldName - field name of the blob field theText - field value return parameter: theErrorStr - error message return: false on error notes: - additional to UpdateTextBlobField name of the primary key is needed } function UpdateTextBlobField_Ex(const theTableName: String; const thePrimaryKeyName: String; thePrimaryKeyValue: Integer; const theFieldName: String; const theText: String; var theErrorStr: String): Boolean; var FQuerySQL : TjifQuery; begin Result:= False; theErrorStr:= S_internal_error; try FQuerySQL := CreatejifQuery; try with FQuerySQL do begin DataBaseName:= C_ALIASNAME; SQL.Add('Update '+theTableName+' Set '); SQL.Add(theFieldName+'=:'+theFieldName); SQL.Add('Where '+thePrimaryKeyName+'=:Id'); ParamByName('Id').AsInteger:= thePrimaryKeyValue; ParamByName(theFieldName).AsBlob:= theText; ExecSQL; end; { with FQuerySQL do } Result:= True; finally FQuerySQL.Free; end; except on E: Exception do theErrorStr:= E.message; end; end; { UpdateTextBlobField_Ex } Heiko |
Re: BLOB SUB_TYPE TEXT nimmt nicht mehr als 255 Zeichen
Zitat:
Zitat:
|
Re: BLOB SUB_TYPE TEXT nimmt nicht mehr als 255 Zeichen
Klingt wie übliche göttliche Bestrafung dafür, dass man eine Tabellenkalkulationssoftware als DBMS-Ersatz missbraucht.
Solange du nicht bei Automationsserver raufgehst solltest du nicht mehr als 250 Zeichen aus einem Feld bekommen. |
Re: BLOB SUB_TYPE TEXT nimmt nicht mehr als 255 Zeichen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:13 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