AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Einfügen über externalTabelle funktioniert nicht richtig
Thema durchsuchen
Ansicht
Themen-Optionen

Einfügen über externalTabelle funktioniert nicht richtig

Ein Thema von blutigerAnfänger · begonnen am 27. Feb 2014 · letzter Beitrag vom 12. Sep 2014
Antwort Antwort
blutigerAnfänger

Registriert seit: 23. Mär 2010
82 Beiträge
 
#1

AW: Einfügen über externalTabelle funktioniert nicht richtig

  Alt 9. Sep 2014, 11:49
Ich hab's geschafft. Zwei Fehler:

1. Fehler: Im Vorbereitungsprogramm, welches die fixe Länge erzeugt, hat sich beim Kopieren ein falscher Index eingeschlichen. Deswegen war die External Tabelle so ziemlich durcheinandergeraten. Korrigiert.
Externe Tabelle funktioniert nachwievor nur mit Char (kein Varchar, kein Integer o.A.)

2.Fehler Die FirebirdZieltabelle hatte wie beschrieben 4 Felder, (Checkbox Integer, Name Varchar, Bezeichnung Varchar, und ID Integer. Das ID Integer Feld gelöscht und der Import läuft fehlerfrei.

Danke an Alle.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Einfügen über externalTabelle funktioniert nicht richtig

  Alt 9. Sep 2014, 17:15
Zitat:
Externe Tabelle funktioniert nachwievor nur mit Char (kein Varchar, kein Integer o.A.)
Ja, aber du kannst es ja beim Kopieren von der externen Tabelle in die Zieltabelle konvertieren (casten)

insert into <Tabelle>(...) select cast( checkbox as Integer), ... from dat_ext
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Einfügen über externalTabelle funktioniert nicht richtig

  Alt 9. Sep 2014, 17:47
Irgendwie klingt es ja auch logisch, dass bei einer festen Breite auch der Datentyp eine feste Breite hat
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
blutigerAnfänger

Registriert seit: 23. Mär 2010
82 Beiträge
 
#4

AW: Einfügen über externalTabelle funktioniert nicht richtig

  Alt 12. Sep 2014, 07:31
Das Problem mit dem ID Feld hat sich auch erledigt.
Das nachträgliche Einfügen der ID Tabelle funktioniert zwar, aber der Trigger und der Generator lassen sich nicht zum laufen bringen(Trigger nicht einmal erzeugen).
Das Problem läßt sich durch das Einfügen eines zusätzlichen Feldes (ID) im Vorbereitungsprogramm umgehen. Fügt zwar ein "statisches" ID Feld ein, ist aber für den Zweck völlig egal.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#5

AW: Einfügen über externalTabelle funktioniert nicht richtig

  Alt 12. Sep 2014, 11:19
Wieso willst Du in einer externen Tabelle denn überhaupt so eine ID haben?

Nochmal: Die 'EXTERNAL TABLE' Funktionalität ist dazu da, um auf externe Dateien zugreifen zu können. Du sollst die tunlichst in eine andere Tabelle überführen, wo Du dann deine Trigger, AutoInc-Spalten, Integer, Numeric, foobars und sonst was für Datentypen hast.
  Mit Zitat antworten Zitat
blutigerAnfänger

Registriert seit: 23. Mär 2010
82 Beiträge
 
#6

AW: Einfügen über externalTabelle funktioniert nicht richtig

  Alt 12. Sep 2014, 12:08
Wieso willst Du in einer externen Tabelle denn überhaupt so eine ID haben?
Möchte ich gar nicht. Ich möchte eine Interne Tabelle mit ID haben.

Das nachträgliche Einfügen der ID Tabelle funktioniert zwar, aber der Trigger und der Generator lassen sich nicht zum laufen bringen(Trigger nicht einmal erzeugen).
Nochmal: Die 'EXTERNAL TABLE' Funktionalität ist dazu da, um auf externe Dateien zugreifen zu können. Du sollst die tunlichst in eine andere Tabelle überführen, wo Du dann deine Trigger, AutoInc-Spalten, Integer, Numeric, foobars und sonst was für Datentypen hast.
Was spricht denn dagegen, wenn der Vorbereitungsteil ein "Id" Feld (es ist doch nur ein gewöhnlicher Zähler) miterstellt. Dafür brauche ich keine Trigger etc. mehr erstellen, was ja nachträglich offenbar auch nicht funktioniert.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#7

AW: Einfügen über externalTabelle funktioniert nicht richtig

  Alt 12. Sep 2014, 12:49
Es spricht nichts dagegen, außer dass es etwas mühsam ist.

Wie wärs mit>
Code:

CREATE GENERATOR gen_t1_id; -- heute nennt man das wohl auch in FB sequence
SET GENERATOR gen_t1_id TO 0;

create table myDestTable
(
id integer not null,
field1 varchar(20) not null
..
field10 sometype
..
fieldN sometype
);

insert into myDestTable (id, ..field10, ..fieldN)
select GEN_ID(GEN_T1_ID, 1), ..ContentForField10, ..ContentForFieldN
  from myExternalTable
[where condition]
Ergibt eine forlaufende ID, Datei übergreifend, ohne Trigger

p.S.: mit Trigger gehts sicher auch, hier Quelle / Link: http://www.firebirdfaq.org/faq29/
Gruß, Jo
  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 10:21 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