Einzelnen Beitrag anzeigen

eufelchen

Registriert seit: 14. Jan 2005
Ort: Bottrop
2 Beiträge
 
Delphi 2005 Professional
 
#1

MSSQL, erweiterte gespeicherte Prozedur erstellen?

  Alt 17. Jan 2007, 13:25
Datenbank: MSSQL • Version: 2000 • Zugriff über: ado und odbc
Hallo,

ich möchte eine "einfache" erweiterte gespeicherte Prozedur erstellen.

In der Hilfe habe ich gefunden das man Funktionen aus der DLL "Opends60.DLL" benötigt.
Als Übersetzung der c-headder ("SRV.H") habe ich die von:
Delphi-Quellcode:
Unit MsOdsApi;
{
  - Master Cluster's Library -

  Copyright © 1996-2004 Leonid Belousov (aka Master Cluster)
  mailto: [email]mc@bramc.ru[/email]
  [url]www.MasterCluster.com[/url]

  - Description: translation of C-headers of Microsoft Open Data Services API
}

[...]
genommen.

mein Quellcode sieht z.Z. so aus
Delphi-Quellcode:
library MeldeAenderung;
uses
   Windows,
   MsOdsApi in 'MsOdsApi.pas';

{$R *.res}

function __GetXpVersion: ULONG; cdecl;
begin
   result := ODS_VERSION;
end;

function xp_MeldeAenderung(pSrvProc: SRV_PROC): Integer; cdecl;
begin
   Windows.Beep(200,200);
   result := 1;
end;

exports
   __GetXpVersion, xp_MeldeAenderung;

begin
   Windows.Beep(400,200);
end.
Die Dll wird auch brav erstellt *freu schon*

Die Dll in das Verzeichnis: "Microsoft SQL Server\80\Tools\Binn" kopiert, und im "SQL Query Analyzer"
Zitat:
use master
go
sp_addextendedproc 'xp_MeldeAenderung', 'MeldeAenderung.dll'
go
sp_helpextendedproc 'xp_MeldeAenderung'
go
exec xp_MeldeAenderung -- Hier krachts
go
sp_dropextendedproc 'xp_MeldeAenderung'
go
ausgeführt:
Zitat:
name dll
---------------------- -----------------------
xp_MeldeAenderung MeldeAenderung.dll

ODBC: Nachr.-Nr. 0, Schweregrad 16, Status 1
Die DLL MeldeAenderung.dll oder eine DLL, auf die sie verweist, kann nicht geladen werden. Ursache: 126(Das angegebene Modul wurde nicht gefunden.).
Auch wenn ich nur
Delphi-Quellcode:
type
   SRV_SERVER = Pointer;
   SRV_CONFIG = Pointer;
   SRV_PROC = Pointer;
const
   SS_MAJOR_VERSION = 7;
   SS_MINOR_VERSION = 00;
   SS_LEVEL_VERSION = 0000;
   SS_MINIMUM_VERSION = '7.00.00.0000';
   ODS_VERSION    = ((SS_MAJOR_VERSION shl 24) or (SS_MINOR_VERSION shl 16));
verwende (aus "srv.h" "übersetzt") und alle verweise auf die "Opends60" entferne bekomme ich die gleiche Meldung

Hat da einer einen Tipp für mich, was da schief läuft?

grübelnd
T. Meuser
  Mit Zitat antworten Zitat