Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADO | Edit | Post - aktualisierbare Abfrage (https://www.delphipraxis.net/73853-ado-%7C-edit-%7C-post-aktualisierbare-abfrage.html)

cltom 24. Jul 2006 22:24

Datenbank: Excel • Version: 2003 • Zugriff über: ADO

ADO | Edit | Post - aktualisierbare Abfrage
 
Hej DP!

kann eigentlich nicht so schwer sein, funktioniert aber trotzdem nicht: edit in einer Excel-Datei, die via ADO angesprochen wird.

Was vorhanden ist:

Datasource, ADOConnection, ADODataset (cmdTable) und dann folgende simple zeilen.

Delphi-Quellcode:
with dataset_xyz do
begin
  Edit;
  FieldValues['feldname'] := 99;
  Post;
end;
=> Operation muss eine aktualisierbare Abfrage verwenden.

Danke für Tipps!

gruß
tom

mkinzler 24. Jul 2006 22:28

Re: ADO | Edit | Post - aktualisierbare Abfrage
 
Wie sieht die Abfrage aus?

cltom 24. Jul 2006 22:33

Re: ADO | Edit | Post - aktualisierbare Abfrage
 
öhm, keine Query, sondern Table (dataset.commandtype := cmdTable).

Geht edit/post nur auf einer Query?

mkinzler 24. Jul 2006 22:50

Re: ADO | Edit | Post - aktualisierbare Abfrage
 
Es geht nur bei einem updateable View. Dies hängt von der Abfrage und der Datenbank ab. eine Abfrage, die sich auf eine Tabelle bezieht (was bei einer Table der Fall ist ; select * from Tabelle) ist das der Fall, also scheint es, ob eine ADO-Verknüpfung mit Excel nicht updateable ist.

cltom 24. Jul 2006 22:56

Re: ADO | Edit | Post - aktualisierbare Abfrage
 
ob es hier scheitert?

Zitat:

Use the TADODataSet component's CommandText property to retrieve the dataset, specifying either a table name or an SQL statement (SELECT only). TADODataSet is not capable of issuing Data Manipulation Language (DML) SQL statements that do not return result sets (like DELETE, INSERT, and UPDATE). For this use a component like TADOCommand or TADOQuery.

mkinzler 24. Jul 2006 22:59

Re: ADO | Edit | Post - aktualisierbare Abfrage
 
Dann versuch es doch mal mit einem TADOQuery, ob es da funktioniert.

marabu 25. Jul 2006 06:03

Re: ADO | Edit | Post - aktualisierbare Abfrage
 
Guten Morgen.

Ein ADO Dataset verliert seine Update-Fähigkeit, wenn der OLE DB Provider für Excel bei der Analyse der Daten feststellt, dass in einer Spalte verschiedene Datentypen gemischt auftreten.

Nachtrag: Es gibt einen KB Artikel zu diesem Thema: How to Query and Update Excel Data Using ADO From ASP

Grüße vom marabu

cltom 25. Jul 2006 06:42

Re: ADO | Edit | Post - aktualisierbare Abfrage
 
hej!

danke für den Hinweis. Reicht es da schon, wenn der Spaltentitel in der ersten Zeile steht? Dann kann ich ja nicht mehr darauf zugreifen?!

Und gibt es eine Möglichkeit drumherum? Wie es halt immer so ist, dass es eine Excel-Tabelle sein soll und keine richtige Datenbank steht fest und dass User möglicherweise Datentypen vermischen kann auch passieren.


gruß
tom

cltom 25. Jul 2006 19:56

Re: ADO | Edit | Post - aktualisierbare Abfrage
 
ok, ein Stückchen schlauer weiss ich nun, was HDR=Yes heisst ...

Mittlerweile ist auch ReadOnly=False drin, was die ursprüngliche Fehlermeldung elminiert hat, stattdessen erhalten ich jetzt:

"Installierbares ISAM nicht gefunden"

Microsoft.Jet.OLEDB.4.0 ist aber im ConnectionString drin, was ist nun verkehrt?

danke

cltom 25. Jul 2006 20:24

Re: ADO | Edit | Post - aktualisierbare Abfrage
 
ach ja und via Query kriege ich das gleiche. "Installierbares ISAM nicht gefunden"


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:46 Uhr.
Seite 1 von 3  1 23      

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