Kbase P128064: SQL92 clients cannot perform inserts into a PUBLIC table (PUB.tablename) after a tablemove command
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  11/01/2008 |
|
Status: Unverified
FACT(s) (Environment):
All Supported Operating Systems
OpenEdge 10.0x
OpenEdge 10.1A
SYMPTOM(s):
ODBC clients cannot perform inserts into a PUBLIC table (PUB.tablename)
JDBC clients cannot perform inserts into a PUBLIC table (PUB.tablename)
=== SQL Exception 1 ===
SQLState=HY000
ErrorCode=-219901
[JDBC OpenEdge Driver]:Internal error -1 (see dsmret.h) in SQL from
subsystem DSM SERVICES function dsmRecordGet called from tpl_insert on PUB.tablename for . Save log for Progress technical support.
4GL clients can create records in the table without receiving error.
SQL92 clients can perform selects on the PUBLIC table (PUB.tablename)
SQL92 clients can perform updates on the PUBLIC table (PUB.tablename)
Problem occurs with all tables that have had a tablemove command issued against them.
CHANGE:
Tablemove performed against this table
CAUSE:
Bug# OE00129427
CAUSE:
Schema Cache for SQL is not being updated.
FIX:
Upgrade to 10.1B or later.
If upgrading to 10.1B is not possible at this time, then a workaround for the issue is to create a dummy table and add a column. This will result in the _sqlsrv2 process recaching its schema.
CREATE TABLE dummy (f1 integer);
COMMIT WORK;
ALTER TABLE dummy ADD COLUMN dummy2 integer;
COMMIT WORK;
The dummy table created above can then be dropped when it is no longer needed using:
DROP TABLE dummy;
COMMIT WORK;