AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Problem mit Foxpro Tabelle
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Foxpro Tabelle

Ein Thema von Gambit · begonnen am 2. Okt 2004 · letzter Beitrag vom 3. Okt 2004
Antwort Antwort
Seite 1 von 2  1 2      
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#1

Problem mit Foxpro Tabelle

  Alt 2. Okt 2004, 16:08
Hallo,

ich kann wie folgt eine FoxPro Tabelle mit ADO anlegen, wenn entsprechender OLE Treiber ist:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  AdoQuery1.sql.clear;
  AdoQuery1.SQL.add('create table tmp (Nr c(10), Titel c(100), SearchText c(100))');
  AdoQuery1.ExecSQL;
end;
Wenn ich aber jetzt versuche, die Tabelle mit Daten zu füllen:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  AdoConnection1.Connected:= true;
  AdoQuery1.Open;
  AdoQuery1.Edit;
  AdoQuery1.Append;
  AdoQuery1.FieldByName('Nr').AsString:='2';
  AdoQuery1.FieldByName('Titel').AsString:='Der Pate';
  AdoQuery1.FieldByName('SearchText').AsString:='DER PATE';
  AdoQuery1.Post;
end;
, erhalte ich folgende Exception/Fehlermeldung:

Nicht genügend Basistabelleninformationen zum Aktualisieren. Interessanterweise funktionieren aber beide Prozeduren einwandfrei, wenn ich sie als 2 verschiedene Einzelprogramme nacheinander ausführe. Es funzt nur nicht innerhalb des selben Programms nacheinander.
Muss man da vorher irgendwas auf NIL setzen oder was?

Gruß

Gambit
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Problem mit Foxpro Tabelle

  Alt 2. Okt 2004, 16:29
Zitat von Gambit:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  AdoConnection1.Connected:= true;
  AdoQuery1.Open;
  AdoQuery1.Edit;
  AdoQuery1.Append;
  AdoQuery1.FieldByName('Nr').AsString:='2';
  AdoQuery1.FieldByName('Titel').AsString:='Der Pate';
  AdoQuery1.FieldByName('SearchText').AsString:='DER PATE';
  AdoQuery1.Post;
end;
In welcher Zeile tritt die Exception auf ? Warum verwendest Du Edit zusammen mit Append ? Append bzw. Insert genügen!
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#3

Re: Problem mit Foxpro Tabelle

  Alt 2. Okt 2004, 16:38
wenn ich beide Methoden im selben Programm ausführe kommt die Exception tritt bei ADOQuery1.Post.

Gruß

Gambit
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Problem mit Foxpro Tabelle

  Alt 2. Okt 2004, 17:17
Hallo Gambit,

Edit wird nur benutzt um einen bestehenden Datensatz zu editieren. Append um einen Datensatz einzufügen, der dann automatisch im Editiermodus ist. Lasse also einmal den Aufruf von Edit weg.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#5

Re: Problem mit Foxpro Tabelle

  Alt 2. Okt 2004, 18:24
Nutzt auch nix, wenn ich Edit weglasse, gleiche Fehlermeldung...
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Problem mit Foxpro Tabelle

  Alt 2. Okt 2004, 19:39
Hallo Gambit,

wenn du in der Button2 Methode AdoQuery1.Open schreibst, wird ja versucht das zugeordnete SQL Statement auszuführen. Steht da immer noch das Create Stetement drin? Dann kannst du die Query gar nicht mit Open öffnen. Du könntest dann besser mit einer AdoTable arbeiten.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#7

Re: Problem mit Foxpro Tabelle

  Alt 2. Okt 2004, 19:54
Spock, du bist ein Held!!

Jetzt sieht meine Methode so aus und es funzt:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  AdoQuery1.sql.clear;
  AdoQuery1.SQL.add('create table tmp (Nr c(10), Titel c(100), SearchText c(100))');
  AdoQuery1.ExecSQL;

  AdoQuery1.sql.clear;
  AdoQuery1.SQL.add('select * from tmp');
  AdoQuery1.ExecSQL;

  ADOConnection1.Connected:= true;

  AdoQuery1.Open;
  AdoQuery1.Append;
  AdoQuery1.FieldByName('Nr').AsString:='2';
  AdoQuery1.FieldByName('Titel').AsString:='Der Pate';
  AdoQuery1.FieldByName('SearchText').AsString:='DER PATE';
  AdoQuery1.Post;
end;
Schwere Geburt, Danke!

Live long and prosper!

Gambit
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Problem mit Foxpro Tabelle

  Alt 2. Okt 2004, 20:07
Hallo Gambit,

ich meine, du könntest die beiden Zeilen:

Delphi-Quellcode:
AdoQuery1.ExecSQL;

  ADOConnection1.Connected:= true;
noch einsparen. Ein SELECT Statement wird nicht mit ExecSQL, sondern mit Open ausgeführt. Das Open folgt ja kurz darauf. Die Verbindung sollte ja schon hergestellt sein, sonst könntest du das erste Statement nicht ausführen.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#9

Re: Problem mit Foxpro Tabelle

  Alt 2. Okt 2004, 20:18
Faszinierend, du hast natürlich recht, logisch...

Das mit ExcecSQL war mir eigentlich auch klar, das mit der Connection aber nicht. Zur Entwurfszeit steht die nämlich auf false. Dann müsste .SQL.Clear die Connection wohl schon automatisch mit herstellen oder was?

Gruß

Gambit
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Problem mit Foxpro Tabelle

  Alt 2. Okt 2004, 20:36
Hallo Gambit,

das weiß ich auch nicht. Ich hatte vermutet, dass du im Programmcode irgendwo die Connection auf True setzt, bevor du das Create Statement ausführst. Ich selbst arbeite nicht mit ADO Komponenten, deshalb bin ich mir nicht sicher, ob dort die Verbindung automatisch hergestellt wird.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:31 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