Problem z numerami sekwencyjnymi w SQL przez ODBC - Technical Forum - PUG Poland - Progress Community

Problem z numerami sekwencyjnymi w SQL przez ODBC

 Technical Forum

Problem z numerami sekwencyjnymi w SQL przez ODBC

  • SQL-owe funkcje dostępu do sekwencji "schema.sequence.CURRVAL" i "schema.sequence.NEXTVAL" są niedostępne poprzez ODBC. Czy aktualna wartość sekwencji jest gdzieś dostępna w tablicach systemowych, by można było ją czytać i modyfikować ? A może jest jakiś inny, dobry sposób nadawania kolejnych numerów rekordom tej samej tablicy za pomocą SQL i 4GL ?

  • Panie Andrzeju,

    W 4GL można odczytać aktualną wartość sekwencji poprzez funkcję CURRENT-VALUE oraz następną wartość NEXT-VALUE. Ta ostatnia jest wykorzystywana w trygerach np. nowa_wartość = NEXT-VALUE(nazwa_serwencji).

    Co się tyczy SQL to proszę przeczytać dokument:

    knowledgebase.progress.com/.../P183766

    Proszę dać znać czy to rozwiąże Pana problem.

  • Jak już pisałem, funkcje "sequence.CURRVAL" i "sequence.NEXTVAL" nie są dostępne przez ODBC i JDBC, a metoda wyszukiwania ostatnio użytej wartości ID może zawieść. Co gorsza, rekordy będą tworzone z użyciem 4GL oraz SQL-ODBC.

  • Systemowa tablica "_Sequence" nie zawiera ostatnio użytego numeru sekwencyjnego - prawdopodobnie jest gdzieś głęboko zaszyty.

  • Tak, zgadza się.