Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Schlüsselspalteninformationen sind ungenügend / inkorrekt (https://www.delphipraxis.net/58373-schluesselspalteninformationen-sind-ungenuegend-inkorrekt.html)

schof 6. Dez 2005 09:35

Datenbank: Access • Zugriff über: ADO

Schlüsselspalteninformationen sind ungenügend / inkorrekt
 
Hallo
wenn ich mein Programm aufrufe und per Drag und Drop eine Produktgruppe verschiebe bringt er mir diesen Fehler: "Die Schlüsselspalteninformationen sind ungenügend oder inkorrekt. Es sind zu viele Zeilen von der Aktualisierung betroffen" Er führt jedoch den Edit korrekt aus. Alles ist so abgelaufen wie ich es wollte :) bis auf die Fehlermeldung ich hab schon im inet gesucht aber nichts gefunden.
Für jede Hilfe bin ich Dankbar. hier noch der code
Delphi-Quellcode:
with MastData.ArticleQry do begin
        Close;
        Sql.Clear;
        SQL.Add('SELECT gruppe1,gruppe2,gruppe3 FROM article WHERE gruppe3 = '+gr);
        Open;
        while not EOF do begin
        MastData.ArticleQry.Edit;
        //showmessage(gr);
        showmessage(MastData.ArticleQry.FieldByName('gruppe2').AsString);
        showmessage(MastData.ArticleQry.FieldByName('gruppe3').AsString);
        MastData.ArticleQry.FieldByName('gruppe2').AsString := dropitem;
        //showmessage(dropitem);
        MastData.ArticleQry.Post;
        next;
        end;
        end;

Bernhard Geyer 6. Dez 2005 10:01

Re: Schlüsselspalteninformationen sind ungenügend / inkorrek
 
Verwende mal statt TADOQuery TADODataset. TADOTable und TADOQuery sind nur für einfacher Portierung von BDE gedacht und haben AFAIK ein paar Macken/Fehler.

schof 6. Dez 2005 10:06

Re: Schlüsselspalteninformationen sind ungenügend / inkorrek
 
also kann ich das mit query net verwirklichen ? oder wie kann soll ich das auffassen es ist so dass ich halt schon ziemlich viele querrys habe. und eigentlich schon ziemlich viel verknüpft habe. wenns nicht anders get werd ich mich so drüber machen aber danke schon mak

Bernhard Geyer 6. Dez 2005 10:15

Re: Schlüsselspalteninformationen sind ungenügend / inkorrek
 
TADODataset ist flexibler. Kann sowohl im "TTable-Modus" als auch "TQuery-Modus" arbeiten.

schof 7. Dez 2005 09:14

Re: Schlüsselspalteninformationen sind ungenügend / inkorrek
 
So, nur der Vollständigkeit halber ich hab meinen Fehler gefunden. Ich hab einen neuen querry erstellt und dann mit diesem den datensatz aktualisiert hier der code :
Delphi-Quellcode:
begin
        with MastData.ArticleQry do begin
        Close;
        Sql.Clear;
        SQL.Add('SELECT gruppe1,gruppe2,gruppe3 FROM article WHERE gruppe3 = '+gr);
        Open;
        while not EOF do begin
        Edit;
        FieldByName('gruppe2').AsString := trvgroup.DropTarget.Text;
        MastData.ArticleSelQry.Close;
        MastData.ArticleSelQry.sql.Clear;
        MastData.ArticleSelQry.SQL.Add('SELECT gruppe1 FROM article WHERE gruppe2 = '+QuotedStr(trvgroup.DropTarget.Text));
        MastData.ArticleSelQry.Open;
        MastData.ArticleQry.FieldByName('gruppe1').Value := MastData.ArticleSelQry.FieldByName('gruppe1').Value;
        Post;
        next;
        end;
        end;
       end;
nun seht ihr den unterschied naja es klappt performance mässig hatte ich noch keine zeit zu testen .

shmia 7. Dez 2005 12:22

Re: Schlüsselspalteninformationen sind ungenügend / inkorrek
 
Zitat:

Zitat von schof
... diesen Fehler: "Die Schlüsselspalteninformationen sind ungenügend oder inkorrekt. Es sind zu viele Zeilen von der Aktualisierung betroffen"

Hat deine Tabelle keinen Primärschlüssel ?
Dann ist dies die Ursache für den Fehler.
Hat das Feld "gruppe3" eine Index ? Falls nicht, ist dies die Ursache für schlechte Performance.

DelphiApostel 29. Jan 2008 15:50

Re: Schlüsselspalteninformationen sind ungenügend / inkorrek
 
Hallo,

also diesen Fehler hatte ich auch schon mal. Ich habe bei der ADOQuery-Komponente die Eigenschaft "CursorLocation" auf "clUseServer" eingestellt.
Danach funktionierte die Aktualisierung der Datensätze problemlos.

MfG
Delphi Apostel

JHDGE 23. Aug 2011 18:45

AW: Schlüsselspalteninformationen sind ungenügend / inkorrekt
 
Na der Beitrag ist zwar schon älter aber sehr Hilfreich was ich denke

Ich habe lange nach dem Fehler gesucht beim löschen von Vielen Datensätzen kam genau der Fehler
Durch den Tip 1 voran schaute ich nach und genial

Hier die Delphi Hilfe dazu ! :thumb:

Mit CursorLocation können Sie festlegen, ob eine clientseitige oder eine serverseitige Cursor-Bibliothek verwendet wird. Der Wert wirkt sich aber nur auf Verbindungen aus, die nach der Zuweisung geöffnet werden. Der Standardwert ist clUseClient.

Ein Client-Cursor bietet mehr Flexibilität. Die gesamten Daten werden auf den lokalen Rechner abgerufen und hier bearbeitet. Dadurch können Aktionen durchgeführt werden (z. B. spezielle Sortier- und Filteroperationen), die vom Server möglicherweise nicht unterstützt werden. Da die SQL-Anweisungen auf dem Server ausgeführt werden, wird beim Einschränken der Ergebnismenge durch eine WHERE-Klausel nur eine Teilmenge der Daten an den lokalen Cursor übertragen.

Ein serverseitiger Cursor ist nicht so flexibel, kann aber bei sehr großen Ergebnismengen vorteilhaft (oder sogar notwendig) sein. Er muss verwendet werden, wenn die Größe der Ergebnismenge den verfügbaren Festplattenspeicher des Client-Systems überschreitet. Viele Server unterstützen außerdem nur Vorwärts-Cursor, bei denen der Satzzeiger in der Ergebnismenge nicht in Richtung Tabellenanfang bewegt werden kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 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