Schrift
[thread]11007[/thread]

ODBC: ID des zuletzt eingefügten Datensatzes?



<< >> 8 Einträge, 1 Seite
pktm
 2007-12-12 12:47
#103763 #103763
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Weis zufällig gerade jemand, wie ich an die ID des zuletzt eingefügten Datensatzes komme?
Da gab es doch eine Funktion für, ich finde die nur gerade nicht.

Mehr Details: Ich stelle über ODBC eine Verbindung mit einer Access-Datenbank her. Die Id ist dabei ein auto-wert Feld, zählt daher automatisch hoch und muss beim INSERT-Statement nicht angegeben werden.

Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
renee
 2007-12-12 12:49
#103764 #103764
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Normalerweise last_insert_id, aber die Funktion wird nicht von allen Treibern/Datenbanksystemen unterstützt. Musst Du mal schauen, ob das bei Access so ist...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pktm
 2007-12-12 13:43
#103768 #103768
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Ja, das war sie.

Jetzt habe ich nur noch das Problem, dass ich nicht weis, welche Dinge ich für Schema und Catalog angeben muss:

Code: (dl )
#Usage: $h->last_insert_id($catalog, $schema, $table_name, $field_name [, \%attr ])


Schema müsste doch eigentlich der Name der ODBC-Datenquelle sein. Aber was ist Catalog?

Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
renee
 2007-12-12 13:55
#103770 #103770
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Übergib' für Catalog und Schema mal '%'. Wenn ich mich recht erinnere, sind das Wildcards...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pktm
 2007-12-12 14:04
#103771 #103771
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hm, das bringt leider keine Änderung. Er gibt mir aber auch keinen Fehler:

Code: (dl )
say "letzte ID: " . $dbh->last_insert_id('%', '%', 'Firmendaten', 'Id'); # Z. 287


Quote
Use of uninitialized value in concatenation (.) or string at ...excel_import1.pl line 287.


:-S
http://www.intergastro-service.de (mein erstes CMS :) )
renee
 2007-12-12 14:51
#103774 #103774
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Hast Du mal geschaut, ob das von Access überhaupt unterstützt wird?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pktm
 2007-12-13 13:23
#103819 #103819
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
renee+2007-12-12 13:51:15--
Hast Du mal geschaut, ob das von Access überhaupt unterstützt wird?


Gute Frage. Wo kann man sowas nachgucken?
Ansonsten habe ich es bis zur Lösung so gemacht, dass ich unmittelbar nach dem Einfügen eine Abfrage laufen lasse, die nach genau den Werten sucht, die ich gerade eingefügt habe. Das klappt allerdings nur, weil eine Spalte davon unique ist...

Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
Siechfred
 2007-12-13 17:38
#103834 #103834
User since
2007-11-12
30 Artikel
BenutzerIn
[default_avatar]
In MSSQL gibt es doch „SELECT @@IDENTITY“, das liefert Dir die ID der letzten DB-Operation. Daneben gibt es die Funktionen IDENT_CURRENT und SCOPE_IDENTITY. Die sind IIRC auch unter Access verfügbar. Nähere Infos gibt's im MSDN:

http://support.microsoft.com/?scid=kb%3Ben-us%3B232144&x=13&y=8
http://support.microsoft.com/?scid=kb%3Ben-us%3B233299&x=10&y=12

Vielleicht hilft's Dir weiter.

Siechfred
<< >> 8 Einträge, 1 Seite



View all threads created 2007-12-12 12:47.