Ungültige Tabelle zu verbundener MS-SQL-DB

Posted by Ingo Stephan on 06-Jun-2016 01:39

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

Posted by James Palmer on 06-Jun-2016 04:14

Hier ist ein Link zu deine Frage bei ProgressTalk mit Antwort

www.progresstalk.com/.../

:)

This thread is closed