Ungültige Tabelle zu verbundener MS-SQL-DB - Technical Forum - PUG Germany - Progress Community

Ungültige Tabelle zu verbundener MS-SQL-DB

 Technical Forum

Ungültige Tabelle zu verbundener MS-SQL-DB

This question is not answered

Hallo miteinander,

ich habe in Progress eine MS-SQL-DB verbunden. Das hat funktioniert. Möchte ich nun eine Query auf eine Tabelle absetzen, kommt beim OPEN oder EXECUTE die Fehlermeldung "...ungültiger Objektname <TABELLENNAME>. Error Code: 0x80020009...". Lass ich das Ganze in einem VBS laufen, funktioniert das astrein.

Nachfolgend mal der Progress-Code...

def var gvch_dbconn  as com-handle no-undo.
def var gvch_dataset as com-handle no-undo.

def var gvc_provider as character  no-undo.
def var gvc_server   as character  no-undo.
def var gvc_dbname   as character  no-undo.
def var gvc_userid   as character  no-undo.
def var gvc_userpwd  as character  no-undo.
def var gvc_connect  as character  no-undo.
def var gvc_befehl   as character  no-undo.
def var gvi_zaehler  as integer    no-undo.

ASSIGN
  gvc_provider = 'SQLOLEDB':U
  gvc_dbname   = 'HOMAG':U
  gvc_server   = '.':U
  gvc_userid   = 'sa':U
  gvc_userpwd  = 'istist':U
  gvc_connect  = 'provider=':U   + gvc_provider + ';':U
               + 'server=':U     + gvc_server   + ';':U
               + 'datasource=':U + gvc_dbname.

create "ADODB.Connection" gvch_dbconn.
create "ADODB.RecordSet"  gvch_dataset.

gvch_dbconn:open (gvc_connect,gvc_userid,gvc_userpwd,0) no-error.

if error-status:error or error-status:num-messages > 0
then do:
message "Connect-Fehler".
  do gvi_zaehler = 1 to error-status:num-messages:
    message error-status:get-number(gvi_zaehler) error-status:get-message(gvi_zaehler) view-as alert-box.
  end.
end.
else message "Connect-OK".

/*
gvc_befehl = 'SELECT * FROM StornoAuslagerung':U.
gvc_befehl = 'SELECT * FROM GetBestand()':U.
*/
gvc_befehl = 'SELECT * FROM AAusDatei1':U.

gvch_dataset:OPEN(gvc_befehl,gvch_dbconn, 3, 1, 1) no-error.
if error-status:error or error-status:num-messages > 0
then do:
message "Open-DS-Fehler".
  do gvi_zaehler = 1 to error-status:num-messages:
    message error-status:get-number(gvi_zaehler) error-status:get-message(gvi_zaehler) view-as alert-box.
  end.
end.
else message "Open-DS-OK".

gvch_dataset:close no-error.

release object gvch_dbconn  no-error.
release object gvch_dataset no-error.

...Fehlermeldung...

...und ein Screenshot von der DB...

...und hier das VBS...

'*********************************************************************
' Connectionstring für Verbindung zum Server
'*********************************************************************
Const OdbcName = "Provider=SQLOLEDB;Datasource=.;DATABASE=HOMAG;UID=sa;PWD=istist"
Dim PathArgs(0) ' Programm-Argument

Set WSHShell = WScript.CreateObject("WScript.Shell")
Set ObjEnv = WSHShell.Environment("Process")
Set ObjArgs = WScript.Arguments
Set FSO = CreateObject("Scripting.FileSystemObject")

Verbindung zur Datenbank aufbauen
Set objData = CreateObject("ADODB.Connection")
objData.Open Odbcname

' ADO Recordset erzeugen
Set objRS = CreateObject("ADODB.RecordSet")

On Error Resume Next

'*********************************************************************
' Tabelle StornoAuslauslagerung auslesen
'*********************************************************************
objRS.ActiveConnection = objData
'objRS.Source = "SELECT * FROM StornoAuslagerung"
objRS.Source = "SELECT * FROM AAusDatei1"

'adOpenKeyset Type
objRS.CursorType = 1
objRS.Open
MsgBox " Anzahl Datensaetze in Tabelle:" & objRS.RecordCount

objRS.Close
objData.Close


Da das VBS funktioniert, nehme ich mal an, dass es nicht an irgendwelchen Rechten in der DB liegen kann. Was ist dann also an meinem Code falsch bzw. was fehlt?

1000 Dank schon mal.

Ingo

All Replies