Visual Dataflex
Zur Startseite Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen
Datenbank RSS Feed Selector Zur User-Map

 
Boardmenü
» Forum
» Portal

» Registrieren
» Suche
» Statistik
» Mitglieder
» Team
» Kalender
» Sponsoren
» Partner

» F.A.Q

Portalmenü
» Datenbank anlegen
» Datenbank Entwicklung
» Empfehlungen
» Portal
» Programm erstellen
» Über visual Dataflex

» Statistik

Dataflex Empfehlungen

Englisches Dataflex Forum


Anzeigen

Sponsoren
Kostenloser Linktausch

Antivirus Software

Foren Verzeichnis

HP Color Laserjet 1600

Windows 7 Forum


Social Bookmark Script

Visual Dataflex » VDF Anfänger » Datensatz zwieschen 2 WS kopieren » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Datensatz zwieschen 2 WS kopieren
Autor
Beitrag
Natalia Natalia ist weiblich
Jungspund


Dabei seit: 24.09.2008
Beiträge: 20
Einsatzart von VDF: gewerblich
Anwenderstatus: Newbie
Herkunft: Villingen-Schwenning en
Betriebssystem: Windows XP

Datensatz zwieschen 2 WS kopieren Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo zusammen,

ich habe folgende Problem: In zwei Worspace(WS1 und WS2) habe ich Tabellen mit gleichen Namen und gleichen Filenumber, weil ich für die gleiche view benutze.

Datensätze möchte ich aber von WS1 in WS2 kopieren, nach bestimte Parameter, z.B. Status = "B". View für Kopieren habe ich nur in WS2.

Wie kann ich jetzt die Tabellen gleichzeitig in WS2 öffnen, so dass Relationen auch funktionieren um DatenSätze von WS1 in WS2 zu kopieren?

Was passiert, wenn ich WS1 Tabelle in Filelist WS2 mit anderen Namen eintrage, aber Relation nicht ändere? Wird dann die Relation mit Tabelle in WS1 oder in WS2 verknüpft?

z.B.: WS1: Kopf <-Position
WS2: Kopf<-Position, Kopf1(File aber aus WS1), Position1 (File aber aus WS1).

Wenn ich ein Datensatz in POSITION1 finde, welche Kopf bekomme ich dann?
Aus Kopf(WS2) oder aus Kopf1(also WS1).

Kann ich in WS2 Kopf1 und Position1 ohne verknüpfung mit WS1 anlegen und dann mit "Open as" aus WS1 Tabellen aufmachen? Wie funktioniert es richtig?


Hat jemand vielleicht erfarungen oder anderen Ideen wie es funktioniert?


Danke

Natalia
27.04.2010 13:01 Natalia ist offline E-Mail an Natalia senden Beiträge von Natalia suchen Nehmen Sie Natalia in Ihre Freundesliste auf
abraxas
Doppel-As


Dabei seit: 23.07.2007
Beiträge: 107
Einsatzart von VDF: gewerblich
Anwenderstatus: VDF-Entwickler
Herkunft: Frauenfeld (CH)

RE: Datensatz zwieschen 2 WS kopieren Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo Natalia
Zitat:

Wie kann ich jetzt die Tabellen gleichzeitig in WS2 öffnen, so dass Relationen auch funktionieren um DatenSätze von WS1 in WS2 zu kopieren?

Öffnen kann man mit "Open AS" jede beliebige Tabelle, sogar ohne Namen "Open c:\temp\customer.dat AS 42". Man muss dann aber mit File und Fieldnumbers arbeiten.
Das mit den Relationen geht nicht. In z.B. OrderDTL Tabelle (im Physischen DAT) steht drin, dass eine Relation zur OrderHea Tabelle besteht, und zwar zum File X, Feld Y. Somit wird ein Relate immer auf File X, Feld Y zugreifen wollen - und nicht auf das mit "Open AS" definiert handle.

Zitat:

Was passiert, wenn ich WS1 Tabelle in Filelist WS2 mit anderen Namen eintrage, aber Relation nicht ändere? Wird dann die Relation mit Tabelle in WS1 oder in WS2 verknüpft?

Beim finden der Relation greift das System auf das aktive Filelist.cfg zu. Wie schon gesagt: Die Relation ist Fix im DAT drin und zeigt auf eine bestimmte Filen- und Fieldnumber.

Zitat:

z.B.: WS1: Kopf <-Position
WS2: Kopf<-Position, Kopf1(File aber aus WS1), Position1 (File aber aus WS1).

Wenn ich ein Datensatz in POSITION1 finde, welche Kopf bekomme ich dann?
Aus Kopf(WS2) oder aus Kopf1(also WS1).

Kann ich in WS2 Kopf1 und Position1 ohne verknüpfung mit WS1 anlegen und dann mit "Open as" aus WS1 Tabellen aufmachen? Wie funktioniert es richtig?

Das einfachsten ist es, Du arbeitest mit open as, vergisst die bestehenden Relationen (also die die DD-Builder definiert wurde) und programmierst die Relationen aus (clear/move/find eq). Wenn die Daten ziemlich statisch sind und auch mengenmässig nicht übertrieben, könntest Du Dir auch überlegen die Daten periodisch in den gewünschten Workspace zu kopieren (Tabellen und sogar nur ins memory/array) und eventuell zu denormalisieren.

HTH, Paolo

__________________
=================
Abraxas Informatik AG
Schweiz
=================
28.04.2010 10:50 abraxas ist offline E-Mail an abraxas senden Homepage von abraxas Beiträge von abraxas suchen Nehmen Sie abraxas in Ihre Freundesliste auf
Natalia Natalia ist weiblich
Jungspund


Dabei seit: 24.09.2008
Beiträge: 20
Einsatzart von VDF: gewerblich
Anwenderstatus: Newbie
Herkunft: Villingen-Schwenning en
Betriebssystem: Windows XP

Themenstarter Thema begonnen von Natalia
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Danke,

ist es dann so:

ich soll die Tabellen Kopf1 und Position1 in WS2 anlegen ohne Relation,

dann open WS1\Kopf as Kopf1 und open WS1\Position as Position1 ausführen

und danach haben Kopf1 und Position1 Daten aus WS1?

Und warum wenn ich in WS2 Relation habe tut er nicht Position1(mit Daten aus WS1) mit Kopf1(Daten auch aus WS1) verknüpfen.

Nach File-/Field - Nummer soll eigentlich stimmen oder? Die Tabellen aus WS1 bekommen dann einfach Nummern von Tabellen in WS2 oder?

Und ich habe Tabellen jetzt doch mit Relation drin und sehe keine Daten nach dem Open as. Liegt es daran?

Gruß
Natalia
28.04.2010 11:09 Natalia ist offline E-Mail an Natalia senden Beiträge von Natalia suchen Nehmen Sie Natalia in Ihre Freundesliste auf
Roman Köhler Roman Köhler ist männlich
Administrator


images/avatars/avatar-4.jpg

Dabei seit: 29.08.2007
Beiträge: 202
Einsatzart von VDF: gewerblich
Anwenderstatus: VDF-Entwickler
Herkunft: Mannheim
Betriebssystem: Windows XP

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hi Natalia,

ich bin ja immer ein Freund von unkomplizierten Lösungen. Daher meine Frage: Müssen die beiden Workspaces unbedingt auf einen unterschiedlichen Datenbestand zugreifen? Wenn Du sagst, dass WS 2 einen Teil der Daten von WS 1 braucht, wäre ein (teilweise) gemeinsamer Datenbestand mit geschickt gesetzten constraints in WS 2 nicht vielleicht auch möglich?

Nur mal so als Denkansatz.

LG
Roman
28.04.2010 12:05 Roman Köhler ist offline E-Mail an Roman Köhler senden Homepage von Roman Köhler Beiträge von Roman Köhler suchen Nehmen Sie Roman Köhler in Ihre Freundesliste auf
Natalia Natalia ist weiblich
Jungspund


Dabei seit: 24.09.2008
Beiträge: 20
Einsatzart von VDF: gewerblich
Anwenderstatus: Newbie
Herkunft: Villingen-Schwenning en
Betriebssystem: Windows XP

Themenstarter Thema begonnen von Natalia
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Leider nicht,
beim koperen machen wir Umrechnung in andere Währung, und anderen Felder können dann in WS2 geändert werden.
und wenn ich die Tabellen in WS1 hinzufüge, dann brauche ich alle Masken doppelt.
28.04.2010 12:09 Natalia ist offline E-Mail an Natalia senden Beiträge von Natalia suchen Nehmen Sie Natalia in Ihre Freundesliste auf
abraxas
Doppel-As


Dabei seit: 23.07.2007
Beiträge: 107
Einsatzart von VDF: gewerblich
Anwenderstatus: VDF-Entwickler
Herkunft: Frauenfeld (CH)

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Natalia

Zitat:
ich soll die Tabellen Kopf1 und Position1 in WS2 anlegen ohne Relation,
dann open WS1\Kopf as Kopf1 und open WS1\Position as Position1 ausführen
und danach haben Kopf1 und Position1 Daten aus WS1?

Ja. Du musst aber nicht Tabellen anlegen ohne Relation. Du hast ja im WS2 wie auch im WS1 dieselbe Tabellen(Struktur). Du willst eigentlich eine Datei aus WS1 in WS2 unter 'anderem' Namen öffnen.

Wir sind jetzt im WS2 und wollen KOPF aus WS1 aufmachen:
code:
1:
2:
open KOPF
open "C:\WS1\DATEN\KOPF.DAT" as KOPF

Jetzt hast Du aber ein Problem: Du willst ja KOPF vom WS2 auch aufmachen. Mit diesem Befehl oben ist aber KOPF als Tabelle des WS1 geöffnet. Ein vorheriger "open KOPF" würde somit überschrieben.
Also: Du kannst eine Tabelle namens KOPF nur einmal öffnen und somit brauchst Du einen weiteren symbolischen Namen für die Datei aus WS1: KOPF1.

Um das zu erreichen brauchst Du einen weiteren Eintrag im Filelist.cfg: KOPF1. Dann sieht der Open so aus:
code:
1:
2:
open KOPF
open "C:\WS1\DATEN\KOPF.DAT" as KOPF1

Neues Problem: Es kompiliert nicht, weil er kein KOPF1.FD findet! Also das .FD für KOPF1 erstellen (nur das FD und KEINE Tabellen/DAT).
Solange Du die Relationen nicht gebrauchst (mit relate KOPF1 oder auch mit eine KOPF1.DD), kannst Du damit eigentlich alles machen.

Die obige Lösung hat eben den Nachteil, dass Du einen Filelist Eintrag machen musst, mit Definition von .FD und allenfalls .TAG für KOPF1. Der Vorteil ist, dass Du dann Daten wie gewohnt suchen/bearbeiten kannst (find eq KOPF1 by index.1, move KOPF1.NAME to KOPF.NAME).

Als Alternative kann man auch so vorgehen:
code:
1:
2:
3:
open KOPF
open "C:\WS1\DATEN\KOPF.DAT" as 400
Der Nachteil ist, dass KOPF1 nicht existiert und man mit File und Feldnummern arbeiten muss. Vorteil: Kein filelist Eintrag, kein KOPF1.FD etc.
code:
1:
2:
3:
Clear 400 // Clear KOPF1
set_field_value 400 3 to KOPF.NAME // move KOPF.NAME to KOPF1.NAME (Feld 3)
vfind 400 index.1 EQ // Find eq KOPF1 by index.1


paolo

PS: Es gäbe da noch die Möglichkeit mit Set_Relate die Relationen umzubiegen, "set_relate position1.kopf_id to kopf1.kopf_id". Dann würde das mit den relationen auch klappen..

__________________
=================
Abraxas Informatik AG
Schweiz
=================
28.04.2010 14:33 abraxas ist offline E-Mail an abraxas senden Homepage von abraxas Beiträge von abraxas suchen Nehmen Sie abraxas in Ihre Freundesliste auf
Natalia Natalia ist weiblich
Jungspund


Dabei seit: 24.09.2008
Beiträge: 20
Einsatzart von VDF: gewerblich
Anwenderstatus: Newbie
Herkunft: Villingen-Schwenning en
Betriebssystem: Windows XP

Themenstarter Thema begonnen von Natalia
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Danke,

ich probiere es.
29.04.2010 08:55 Natalia ist offline E-Mail an Natalia senden Beiträge von Natalia suchen Nehmen Sie Natalia in Ihre Freundesliste auf
Natalia Natalia ist weiblich
Jungspund


Dabei seit: 24.09.2008
Beiträge: 20
Einsatzart von VDF: gewerblich
Anwenderstatus: Newbie
Herkunft: Villingen-Schwenning en
Betriebssystem: Windows XP

Themenstarter Thema begonnen von Natalia
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Vielen Dank,

es funktioniert, man muss nur in WS2 zuerst

close Kopf1

und nur dann

open "WS1\data\kopf.dat" as Kopf1

ausführen, sonst hatte ich immer Daten aus WS2.
29.04.2010 12:40 Natalia ist offline E-Mail an Natalia senden Beiträge von Natalia suchen Nehmen Sie Natalia in Ihre Freundesliste auf
Gehe zu:
Neues Thema erstellen Antwort erstellen
Visual Dataflex » VDF Anfänger » Datensatz zwieschen 2 WS kopieren

Views heute: 1.041 | Views gestern: 2.158 | Views gesamt: 1.841.897

Impressum

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH | SEO by seo-wbb.de - Sponsored by Rene Urlaub und Reise Infos Frankenthal