AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TSQLQuery Puffer-Problem

Ein Thema von itashadow · begonnen am 25. Mär 2013 · letzter Beitrag vom 2. Mai 2013
Antwort Antwort
itashadow

Registriert seit: 22. Apr 2008
Ort: Hattingen
86 Beiträge
 
#1

TSQLQuery Puffer-Problem

  Alt 25. Mär 2013, 15:59
Datenbank: Oracle • Version: 11.2.0.3.0 • Zugriff über: TSQLQuery
Hallo Leute,

ich versuche gerade ein kleines Status-Tool zu schreiben, welches Daten aus einer Datenbank abfragt und diese dann überprüft bzw. bearbeitet. Da ich noch totaler Delphi-Datenbank-Neuling bin, habe ich Bei folgenden Quellcode ein Problem:

Delphi-Quellcode:
      SQLQuery1.Close;
      SQLQuery1.SQL.Clear;
      SQLQuery1.SQL.Text := 'select cname from tschedulertask';
      SQLQuery1.Open;
sobald er das Open ausführt, kommt folgende Fehlermeldung:
Zitat:
ORA-01062: Speicher f?r Define-Puffer kann nicht zugewiesen werden

Die Tabelle Tschedulertask hat folgende Daten:

CIDCHAR(36 BYTE)No 1Unified ID
CNAMEVARCHAR2(64 BYTE)No 2descriptive name for task configuration
CACTIVENUMBER(1,0)No 3flag for (de-)activation of the task
CCOMMENTVARCHAR2(1024 BYTE)Yes 4optional comment
CCREATEDTIMESTAMP(6)Yes 5Datetime of task creation
CLASTMODIFIEDTIMESTAMP(6)Yes 6Datetime of last task modification
CCREATEUSERVARCHAR2(256 BYTE)Yes 7User who created the task
CLASTUSERVARCHAR2(256 BYTE)Yes 8Last user who modified the task
CENVCHAR(3 BYTE)No 9BIS client
CPROFILEVARCHAR2(64 BYTE)Yes 10Name of a profile/group
CNEXTEXECUTIONTIMESTAMP(6)Yes 11Datetime of next execution
CLASTEXECUTIONTIMESTAMP(6)Yes 12Datetime of last execution
CSITEREFCHAR(36 BYTE)No 13Reference to the site
CQOSNUMBER(5,0)Yes 14Quality of service

Eigentlich soll später dieses SQL ausgeführt werden. Aber das klappt ja auch noch nicht.

'select cid, substr(clastexecution,0,14), substr(cnextexecution,0,14), ctrigger, cactive from tschedulertask '

Wenn ich hingegen nach cactive frage dann klappt es. Wenn ich in einer anderen Tabelle nach VARCHAR(255 Byte) frage, dann klappt das auch --> da sollten ja mehr Daten stehen.

Woran kann das liegen?

Ich bin für jede Hilfe dankbar

Gruß

itashadow

edit: mist. hatte den betreff nur eingegeben, damit ich die Vorschau verwenden kann. Kann jemand bitte den Titel anpassen? --> "TSQLQuery Puffer-Problem" oder so ähnlich

Geändert von itashadow (26. Mär 2013 um 08:26 Uhr) Grund: Version hinzugefügt
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: test

  Alt 25. Mär 2013, 16:17
edit: mist. hatte den betreff nur eingegeben, damit ich die Vorschau verwenden kann. Kann jemand bitte den Titel anpassen? --> "TSQLQuery Puffer-Problem" oder so ähnlich[/QUOTE]

Kein Problem, Du gehst auf Bearbeiten(Deines ersten Beitrags) und unter Erweitert gibt's Die Möglichkeit den Titel zu ändern.

An Deiner Abfrage gibt's nichts auszusetzen, die sollte eigentlich überall laufen.
Also hast Du TSQLQuery richtig eingerichtet (Connection) usw.

Versuch es doch einmal spasseshalber mit ADO(connection/query).
(die sind ja eigentlich immer kostenlos dabei)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
itashadow

Registriert seit: 22. Apr 2008
Ort: Hattingen
86 Beiträge
 
#3

AW: TSQLQuery Puffer-Problem

  Alt 25. Mär 2013, 17:01
das komische ist ja, dass 5 andere Abfragen funktionieren und haben eigentlich einen größeren speicherverbrauch. Die gleiche Fehlermeldung gibt es auch bei CLASTEXECUTION.

aber ich werd mich mal mit ADO beschäftigen und mich mal einlesen.

Hat vielleicht noch jemand einen Tipp?

Gruß

itashadow
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: TSQLQuery Puffer-Problem

  Alt 25. Mär 2013, 17:21
entschuldigung, ich hatte die ursprüngliche Nachricht nicht richtig gelesen:
Zitat:
ORA-01062: unable to allocate memory for define buffer Cause: Exceeded the maximum buffer size for current plaform
Action: Use piecewise fetch with a smaller buffer size
Da würde ich zunächst einmal einen Blick auf die Connection werfen, und den Admin interviewen.
Nur "die Abfrage hat schon funktioniert" hat überhaupt keinen Wert. (leider)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
jobo

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

AW: TSQLQuery Puffer-Problem

  Alt 25. Mär 2013, 21:53
Das könnte ein Oracle Bug sein, die Version, die Du nicht angegeben hast, scheint mir da schon spannend.
Ich kenne aus 10.2xy Bugs bei bestimmten Konstellationen von NLS Settings und der Abfrage von timestamp Feldern aus den Oracle-eigenen task scheduler dictionary views.
Deine weiterführende Abfrage sieht auch so ein wenig grob aus. Substring auf Timestamp muss nicht immmer wie gewünscht funktionieren.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: TSQLQuery Puffer-Problem

  Alt 25. Mär 2013, 22:50
Oracle und Bug? Kann niemals sein.

Gibt doch mal an was genau verwendet wird? Evtl. liegt hier auch ein Bug vor den ich auch vor kurzen hatte. Die Zugriffskompos(Oder war der NET-Client) hat für jeden BLOB/TEXT-Feld mehrere MB an Speicher reservier obwohl nur ein paar Bytes benötigt wurde. Dann war schon nach wenigen (100) Ergebnisdatensätzen Schluss mit lustig.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
jobo

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

AW: TSQLQuery Puffer-Problem

  Alt 26. Mär 2013, 08:15
In der Feldliste ist aber kein BLOB Feld oder?
Gruß, Jo
  Mit Zitat antworten Zitat
itashadow

Registriert seit: 22. Apr 2008
Ort: Hattingen
86 Beiträge
 
#8

AW: TSQLQuery Puffer-Problem

  Alt 26. Mär 2013, 08:25
Danke schoneinmal für die Rückmeldungen

Die Oracle Version konnte ich nun auch ermitteln:

NLSRTL 11.2.0.3.0Production
Oracle Database 11g Enterprise Edition 11.2.0.3.064bit Production
PL/SQL 11.2.0.3.0Production
TNS for Linux: 11.2.0.3.0Production

Als Compiler verwende ich Lazarus und habe folgende Komponenten verwendet:

TSQLConnector
TSQLQuery
TSQLTransaction
TDatasource
TDBGrid

mit dem Admin würde ich zur Zeit ungern sprechen. Das Programm entsteht im hitnergrund. --> Es würde uns zur Zeit enorm entlasten aber bisher war es so, wenn wir 10% last weniger hatten, kamen 20% mehr arbeit hinzu.

Abgefragt wird ein VARCHAR2(64 Byte) wobei es insgesamt nur 75 einträge in der Datenbank gibt. Wenn ich per Whereklausel das ganze so einschränke, dass nur ein Wert ausgegeben werden soll, dann bekomme ich den gleichen Fehler. --> Es handelt sich um einen zusammenhängenden text mit Buchstaben, Zahlen, doppelpunkten und unterstrichen. der längste ist 65 Zeichen lang. Durchschnitt dürfte bei 30 Zeichen liegen.

mit "die Abfrage hat schon funktioniert" wollte ich nur ausdrücken, dass die Connection prinzipiell funktioniert und es wahrscheinlich etwas mit den Feldern zu tun hat. --> Wenn ich das gleiche SQL-Statement im PLSQL-Developer ausführe bekomme ich das richtige ergebnis.

Kann mir vielleicht jemand sagen, wie ich mir bei dem TSQLQuery die MaxBufferSize ausgeben lassen kann? Die varianten die ich im Netz gefunden habe, haben alle nicht funktioniert
  Mit Zitat antworten Zitat
jobo

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

AW: TSQLQuery Puffer-Problem

  Alt 26. Mär 2013, 08:53
Die Fehlermeldung ist von Oracle, es geht um Oracle Buffer.
Vielleicht solltest Du das mit Deinem Admin klären, miteinander klappt das sicher besser als heimlich.

Welche Oracle Client Componenten/ Version verwendest Du?
(SDAC geht über OLEDB, oder?) Das war quatsch, hab ich mit anderem Thread verwechselt.

PL/SQLDeveloper geht nativ an OCI.
Gruß, Jo

Geändert von jobo (26. Mär 2013 um 10:15 Uhr) Grund: Korrektur
  Mit Zitat antworten Zitat
itashadow

Registriert seit: 22. Apr 2008
Ort: Hattingen
86 Beiträge
 
#10

AW: TSQLQuery Puffer-Problem

  Alt 2. Mai 2013, 10:28
ein umstellen von TSQLConnector auf TOracleConnection hat geholfen.
  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 17:39 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