Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADOCommand - Update Table (https://www.delphipraxis.net/34661-adocommand-update-table.html)

schuetze09 26. Nov 2004 08:15


ADOCommand - Update Table
 
Hallo,

ich will mit AdoCommand ein Update machen, leider bekomme ich eine Fehlermeldung:

SQL-Code:
ORA-01401: inserted value too large for column
wenn ich aber das gleiche Statement nicht in der Anwendung ausführe, sondern ganz normal, funktioniert es.
Hier mal das ADOCommand:
Delphi-Quellcode:
with ADOCommand do
      begin
        CommandType:=cmdText;
        CommandText:='update tbl_umgebung '
                     +' set env= '
                     + QuotedStr(Umgebung)
                     +' , beschreibung= '
                     + QuotedStr(Beschreibung)
                     +' where env ='
                     + QuotedStr(Umgebung);

        Execute;
        Screen.Cursor:=crDefault;
      end;
Das SQL-Statement:
SQL-Code:
update tbl_umgebung set env= 'y4' , beschreibung= 'Batch HF-Test (n+1)                                                                                                                                                                                                                                          ' where env ='y4'
Woran liegt das bloß?

MfG
schuetze09

Stevie 26. Nov 2004 08:35

Re: ADOCommand - Update Table
 
Moin,

welchen Datentyp haben die Spalten?

Würde nicht folgendes reichen? Das Feld env ist ja schon 'y4'!
SQL-Code:
update tbl_umgebung set beschreibung= 'Batch HF-Test (n+1)' where env ='y4'

schuetze09 26. Nov 2004 08:44

Re: ADOCommand - Update Table
 
@Stevie:
geht leider auch nicht.
Die Felder sind vom Typ CHAR.

mfg
schuetze09

Stevie 26. Nov 2004 09:32

Re: ADOCommand - Update Table
 
Datenbank??

schuetze09 26. Nov 2004 09:41

Re: ADOCommand - Update Table
 
ORACLE

Stevie 26. Nov 2004 10:06

Re: ADOCommand - Update Table
 
Also ORA-01401 kommt, wenn du einen Text einfügen willst, der zu lang ist, sagt er ja... ;-)
Frage: Wie viele Zeichen passen in das Feld beschreibung?
Vermutung: Wenn du den Befehl so ausführst, wird ohne Fehler der zu lange Teil abgeschnitten.
Bei Oracle sollte man ohnehin eher VARCHAR2 benutzen...

clues1 26. Nov 2004 10:11

Re: ADOCommand - Update Table
 
Zitat:

inserted value too large for column
mhh, sieht wirklich danach aus, das du einfch nur dein Char Feld zu kurz angegeben hast.

Wenn du das hier so ausführst wie du das kopierst hast, hätte selbst ein 255 Langes Feld nicht gereicht:

Code:
update tbl_umgebung set env= 'y4' , beschreibung= 'Batch HF-Test (n+1)                                                                                                                                                                                                                                          ' where env ='y4'
Schaumal Beschreibung = 'Text
Mit enter und
viele leere Zeichen
' where env.... = > 255 Zeichen. Mache mal die Leerzeichen zwischen (n+1) und ' weg.

Du hast da 2 Zeilenumbrüche drinn.

Stevie 26. Nov 2004 10:15

Re: ADOCommand - Update Table
 
Zitat:

Zitat von clues1
Zitat:

inserted value too large for column
mhh, sieht wirklich danach aus, das du einfch nur dein Char Feld zu kurz angegeben hast.

Wenn du das hier so ausführst wie du das kopierst hast, hätte selbst ein 255 Langes Feld nicht gereicht:

Code:
update tbl_umgebung set env= 'y4' , beschreibung= 'Batch HF-Test (n+1)                                                                                                                                                                                                                                          ' where env ='y4'
Schaumal Beschreibung = 'Text
Mit enter und
viele leere Zeichen
' where env.... = > 255 Zeichen. Mache mal die Leerzeichen zwischen (n+1) und ' weg.

Du hast da 2 Zeilenumbrüche drinn.

Nee, das dürfte nur hier im Beitrag so sein. Das funkioniert ja nicht:
Zitat:

Zitat von schuetze09
Delphi-Quellcode:
with ADOCommand do
      begin
        CommandType:=cmdText;
        CommandText:='update tbl_umgebung '
                     +' set env= '
                     + QuotedStr(Umgebung)
                     +' , beschreibung= '
                     + QuotedStr(Beschreibung)
                     +' where env ='
                     + QuotedStr(Umgebung);

        Execute;
        Screen.Cursor:=crDefault;
      end;


schuetze09 26. Nov 2004 11:08

Re: ADOCommand - Update Table
 
Also das Feld Env ist ein CHAR(2) , Beschreibung ist CHAR(255).
auf der DB direkt mit dem OraTool funkioniert es, also das update.

MfG
schuetze09

Stevie 26. Nov 2004 11:31

Re: ADOCommand - Update Table
 
Hast du schonmal folgendes versucht?
Delphi-Quellcode:
with ADOCommand do
begin
  CommandType:=cmdText;
  CommandText:='update tbl_umgebung set beschreibung = :1 where env = :2';
  Parameters[0].Value := Beschreibung;
  Parameters[1].Value := Umgebung;
  Execute;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 Uhr.
Seite 1 von 2  1 2      

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