AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MSSQL, erweiterte gespeicherte Prozedur erstellen?
Thema durchsuchen
Ansicht
Themen-Optionen

MSSQL, erweiterte gespeicherte Prozedur erstellen?

Ein Thema von eufelchen · begonnen am 17. Jan 2007 · letzter Beitrag vom 18. Jan 2007
Antwort Antwort
eufelchen

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

MSSQL, erweiterte gespeicherte Prozedur erstellen?

  Alt 17. Jan 2007, 14: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
Benutzerbild von f.siebler
f.siebler

Registriert seit: 15. Jan 2007
Ort: Hamburg
170 Beiträge
 
Delphi 2006 Professional
 
#2

Re: MSSQL, erweiterte gespeicherte Prozedur erstellen?

  Alt 17. Jan 2007, 15:16
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.
Viele Grüße aus Hamburg
Fabian
sql-praxis.net: sql von der Theorie in die Praxis...
  Mit Zitat antworten Zitat
NormanNG

Registriert seit: 1. Feb 2006
294 Beiträge
 
Delphi 2007 Professional
 
#3

Re: MSSQL, erweiterte gespeicherte Prozedur erstellen?

  Alt 17. Jan 2007, 15:20
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;
Gruß
Norman
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: MSSQL, erweiterte gespeicherte Prozedur erstellen?

  Alt 17. Jan 2007, 15:35
Versuch mal:
http://www.berenddeboer.net/delphi/index.html
Andreas
  Mit Zitat antworten Zitat
eufelchen

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

Re: MSSQL, erweiterte gespeicherte Prozedur erstellen?

  Alt 18. Jan 2007, 07:44
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz