Aanmaak tabel vanuit spreadsheet met varchar-waarde groter dan 255

Omgeving:
Windows 10, 64 bit, Firebird externe (locale) database (laatste versie) connectie met JBDC.

Wanneer een nieuwe tabel wordt aangemaakt door een spreadsheet te copieren d.m.v. copy/paste worden alle kolommen aangemaakt. Wanneer echter in de wizard voor kolom een waarde groter dan 255 voor een varchar-veld wordt ingevuld, wordt deze waarde wel geaccepteerd, maar wordt in de Firebird-database een veld met lengte 255 aangemaakt.
Is dit een bug, of doe ik iets fout?

I don’t speak Nederlands, but I will understand, what is written here. Text (VARCHAR) is limited for Firebird to 8000 characters in LibreOffice Base, because 32000 characters is only possible with ASCII-characters and UTF-8 needs more bit.

There is no other limit to an internal Firebird database. Have just tested this with a local external Firebird database. Copied a Calc-table with a field, which contains more than 500 characters. The wizard detected, when I press the automatical detection, 510 characters and the length of the fiel in the table has been creted with 510 characters. Note: I don’t use JDBC for a local file. The connection runs well with “Firebird-File”. If you don’t need a server installation JDBC isn’t needed.

Thanks Robert and Floris,
I have done some more investigation and trials and found out the following:
I didn’t know the function of “Automatic Type Recognition” and the button “Auto” in the Wizard-box and have used those now with some, in my eyes, strange effects:

  1. for a column containing max 50 characters it suggested 40
  2. for columns containing resp. less than 30 and 50 it suggested 30 and 50
  3. for a column containing max 1847 characters its suggested 290
    Running with these figures I received a message that data would be truncated, which makes sense.
    In a next trial I changed the suggested numbers to 100, 100, 100 and 7000.
    No messages where shown and the table was created correctly.
    Somehow the automatic detection does not seem to work the way it should and needs corrections.
    This may be seen as inconvenience, a bug or my lack of understanding.

Since the wizard can be used, be it with some extra manual effort, the call could be closed.

Could be you haven’t recognized it is only looking for the first 10 lines to automatic recognize the content.
Import_Automatic_Type
You could set Automatic Type Recognition → Lines (max.) to ‘100’. Won’t accept values above 100 and set it back to 100. Then press Auto.

If it won’t work right when there are 50 characters in one of the rows, which are set as max. lines please write a bug.

Graag in het Nederlands schrijven. De Asksite is een vraagbaak. De Nederlandse sectie is bedoeld voor mensen die geen Engels kunnen lezen. En die hebben dan niets aan deze discussie. Natuurlijk hartelijk dank voor je reactie.

Varchar heeft per definitie maximaal 255 tekens. In een spreadsheet kun je natuurlijk wel langere teksten in een cel zetten, maar op het moment dat je die tabel invoert in een echte database, val je door de mand. In plaats van varschar moet je blob/text of iets dergelijks gebruiken.

Het is raar dat je geen waarschuwing krijgt, maar een hug? Durf ik niet te zeggen.

Dank voor de reactie.
Hierbij de volgende opmerkingen: De restrictie van 255 karakters is door libreoffcie bepaald, niet door het DBMS. Veel DBMS’s staan een veel grotere waarde toe dan 255. Bij Firebird is dat 32765.
Bij gebruik van “memo”-type velden is de lengte snel al groter dan 255 en Firebird kent geen “memo” type velden. Het vreemde blijft echter dat LO in de wizard wel een grotere waarde toestaan bij het laten aanmaken van de tabel, maar dat blijkbaar intern terugbrengt naar 255 bij het fysiek aanmaken van de tabel in Firebird.
Mijn workaround is in dat geval: aanmaken van de tabel in b.v. FlameRobin en in de LO-wizard de append-optie gebruiken. Hierbij lijkt het mij verstandig eerst in de spreadsheet de maximale lengte van betreffend(e) veld(en) te bepalen.
Uiteraard sta ik open voor een andere/betere oplossing. :wink:

Ik ben wat gaan zoeken en vond op de Engelstalige afdeling deze discussie, met de strekking dat er bij het exporteren naar een tabel in Firebird wel wat mis kan gaan, in dit geval kun je varchar(8) definiëren en dan teksten invoeren met meer dan acht tekens. Het advies daar is een andere database te gebruiken.

Bedenk dat de database-component in LibreOffice nogal beperkt is qua functionaliteit, je moet hem niet vergelijken met MS Access of andere gespecialiseerde databasesoftware.