AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken FieldDefs.AddFieldDef.Datatype funktioniert nicht
Thema durchsuchen
Ansicht
Themen-Optionen

FieldDefs.AddFieldDef.Datatype funktioniert nicht

Ein Thema von mato · begonnen am 8. Nov 2005 · letzter Beitrag vom 8. Nov 2005
Antwort Antwort
Benutzerbild von mato
mato

Registriert seit: 24. Nov 2004
Ort: Lutherstadt Eisleben
19 Beiträge
 
Delphi 6 Professional
 
#1

FieldDefs.AddFieldDef.Datatype funktioniert nicht

  Alt 8. Nov 2005, 10:39
Datenbank: firebird • Version: 1.5 • Zugriff über: interbasekomponenten
hallo leute

folgender code funktioniert nicht


Delphi-Quellcode:
t.active := false;
t.database := ibdatabase1;
t.tablename := 'newtable';
t.fielddefs.addfielddef.name := 'neu';
t.fielddefs.addfielddef.datatype := ftstring;
t.fielddefs.addfielddef.size := 15;
t.createTable;
folgende fehlermeldung
"EIBClientError 'nicht unterstützter feldtyp'"

benutze firebird 1.5, keinen plan woran es liegt. wenn ich ein query benutze dann geht es, dann natürlich mit sql.

mato
Er dachte..., ' Schlimmer kanns nicht mehr kommen !!!' Und es kam schlimmer...
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: FieldDefs.AddFieldDef.Datatype funktioniert nicht

  Alt 8. Nov 2005, 10:50
Hi,
leider hab ich nicht wirklich was mit Interbase und / oder Firebird gemacht, aber ich glaube da ist ein Fehler in
Zitat von mato:
Delphi-Quellcode:
t.fielddefs.addfielddef.name := 'neu';
t.fielddefs.addfielddef.datatype := ftstring;
t.fielddefs.addfielddef.size := 15;
t.fielddefs.AddFieldDef ist eine Funktion und liefert dir damit ein neues Element. Vielleicht ist es ja wirklich absicht, aber du legst damit drei neue FieldDefs an, von denen einer den Namen 'neu', einer den Datatype ftString und einer die Size 15 hat, der Rest ist wohl undefiniert.
Versuch es mal mit

Delphi-Quellcode:
var fieldDef : TFieldDef;
begin
fieldDef := t.fieldDefs.addFieldDef;
fieldDef.name := 'neu';
fieldDef.datatype := ftstring;
fieldDef.size := 15;
end;
Wahrscheinlich ist bei zweien deiner FieldDefs der Datatype auf ftUnknown gesetzt und ob der dann unterstüzt wird...

Gruß Der Unwissende
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#3

Re: FieldDefs.AddFieldDef.Datatype funktioniert nicht

  Alt 8. Nov 2005, 10:51
Delphi-Quellcode:
t.active := false;
t.fielddefs.addfielddef.name := 'neu';
t.fielddefs.addfielddef.datatype := ftstring;
t.fielddefs.addfielddef.size := 15;
Mit dem Code legst du im Prinzip 3 Felder an. Probiers mal damit (aus der OH):

Delphi-Quellcode:
with t.fielddefs.AddFieldDef do begin
  Name := 'neu';
  DataType := ftstring;
  size := 15;
end;
  Mit Zitat antworten Zitat
Benutzerbild von mato
mato

Registriert seit: 24. Nov 2004
Ort: Lutherstadt Eisleben
19 Beiträge
 
Delphi 6 Professional
 
#4

Re: FieldDefs.AddFieldDef.Datatype funktioniert nicht

  Alt 8. Nov 2005, 11:08
danke erstmal, das wars, peinlicher denkfehler meinerseits. die fehlermeldung ist weg, aber die tabelle wird nicht angelegt. muss die tabelle schon vorhanden sein?
Er dachte..., ' Schlimmer kanns nicht mehr kommen !!!' Und es kam schlimmer...
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#5

Re: FieldDefs.AddFieldDef.Datatype funktioniert nicht

  Alt 8. Nov 2005, 12:22
Bin mir nicht sicher, ob das mit Firebird so überhaupt funktioniert, da das ja eine SQL-Datenbank ist. Auf jeden Fall funktionieren wird es, wenn du dir ein "Create TABLE ..." Statement zusammenbastelst und das an die Datenbank schickst.

EDIT:

Hab grad in der OH zu TIBTAble ncohmal nachgeschaut, also eigentlich müsste es auch mit CreateTable funktionieren...
  Mit Zitat antworten Zitat
Benutzerbild von mato
mato

Registriert seit: 24. Nov 2004
Ort: Lutherstadt Eisleben
19 Beiträge
 
Delphi 6 Professional
 
#6

Re: FieldDefs.AddFieldDef.Datatype funktioniert nicht

  Alt 8. Nov 2005, 15:14
na ja, danke erstmal für deine bemühungen. das es funktionieren sollte ist ja schön und gut, hilft mir im moment aber nicht so richtig weiter.
der punkt ist, ich möchte die tabellenstruktur von beliebigen datenbanken in eine firebird/interbase - db kopieren, wahlweise mit oder ohne daten. da ich dummerweise mit ado(access) angefangen habe kann ich mit, ich glaube es war 'TBatchMove', nicht viel machen, zumindest nach meinem stand der dinge. ich werde nochmal versuchen erst die tabellen einzeln und danach die felder reinzuquetchen, vielleicht geht es ja dann. alles ein wenig verwirrend, aber ich werde es schon hinkriegen. doch wenn irgend jemand noch eine idee hat, ich bin für alles offen.
mato

****************************

habe jetzt herausgefunden das sich firebird an dem ftString gestört hat. nur den scheint er nicht zu wollen. bei ftinteger oder ftFixedChar macht er keine probleme. muss mich nochmal wegen den feldtypen kundig machen, welche nun unterstützt werden und welche nicht.

***************************

und gleich nochmal, weil es so schön war. jetzt macht er es doch, warum auch immer. habe mal mit der -Size- rumgebastelt. wollte ja immer eine länge von -15- haben, hat er aber echt nicht gemacht. habe ich also mit -1- angefangen und mit einer schleife bis 14 laufen lassen und siehe da ... er tuts. das komische daran ist nur, habe die schleife bis 25 erhöht und er tuts immernoch. auch die -15- alleine bei nich existierender tabelle macht er mir jetzt. ich habe echt nichts weiter verändert, ist schon komisch. na wenn ich noch drauf komme gebe ich mal laut.
mato
Er dachte..., ' Schlimmer kanns nicht mehr kommen !!!' Und es kam schlimmer...
  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 12:47 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