![]() |
Datenbank: MSSQL • Version: 2000 • Zugriff über: ado und odbc
MSSQL, erweiterte gespeicherte Prozedur erstellen?
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:
genommen.
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 } [...] mein Quellcode sieht z.Z. so aus
Delphi-Quellcode:
Die Dll wird auch brav erstellt *freu schon*
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 in das Verzeichnis: "Microsoft SQL Server\80\Tools\Binn" kopiert, und im "SQL Query Analyzer" Zitat:
Zitat:
Delphi-Quellcode:
verwende (aus "srv.h" "übersetzt") und alle verweise auf die "Opends60" entferne bekomme ich die gleiche Meldung :-(
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)); Hat da einer einen Tipp für mich, was da schief läuft? grübelnd T. Meuser |
Re: MSSQL, erweiterte gespeicherte Prozedur erstellen?
eine lösung habe ich auch nicht, aber mach es dir einfacher, erstelle eine sp oder einen trigger, und rufe damit xp_cmd oder wie das ding heißt auf, damit kannst du externe anwendungen starten... macht weniger arbeit...
aber wie gesagt nur so ne idee. :-) |
Re: MSSQL, erweiterte gespeicherte Prozedur erstellen?
Hi,
versuch doch mal so
Delphi-Quellcode:
function xp_MeldeAenderung(pSrvProc: SRV_PROC): Integer; cdecl;
begin Windows.Beep(200,200); result := 0; <---- 0=NoError 1=Error end; |
Re: MSSQL, erweiterte gespeicherte Prozedur erstellen?
|
Re: MSSQL, erweiterte gespeicherte Prozedur erstellen?
Erstmal:
Danke für die Antworten und guten Morgen @f.siebler Kann man mit einer (einfachen) gespeicherten Prozedur asynchron Aktionen ausführen? Also z.B. xp_cmd benutzen und NICHT auf die Beendigung warten? Es soll nämlich ein Event (mit Daten) in einer anderen Anwendung auslösen, aber die Datenbank auf keinen Fall (nur um das Nötigste) bremsen. [edit] Frage noch offen aus Neugierde noch offen, Problem gelöst [/edit] @NormanNG Probiere ich gleich mal aus [edit] Stimmt ok = 0 error <> 0 aber darren lag se nicht [/Edit] @shmia Sieht interessant aus, aber es scheint mir mit (unnötigem) overhead verbunden zu sein :-( [edit] Auf der Seite ist eine Anleitung wie man die dll Installieren kann, die hat geholfen :-) Die DB wusste einfach nicht wo die dll lag, mit kompletter Pfadangabe geht es. [/edit] MfG T. Meuser |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz