Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Important
Deze functie wordt verwijderd in een toekomstige versie van SQL Server. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie. Gebruik in plaats daarvan CLR-integratie.
Verandert gegevens van het ene datatype naar het andere.
Syntax
int srv_convert (
SRV_PROC *
srvproc
,
int
srctype
,
void *
src
,
DBINT
srclen
,
int
desttype
,
void *
dest
,
DBINT
destlen
);
Arguments
srvproc
Is een verwijzing naar de SRV_PROC structuur die de handle is voor een bepaalde clientverbinding. De structuur bevat alle controle-informatie die de Extended Stored Procedure API gebruikt om communicatie en data tussen de applicatie en de client te beheren. Als de srvproc-handle wordt geleverd, wordt deze doorgegeven aan de Extended Stored Procedure API fouthandlerfunctie wanneer een fout optreedt.
srctype
Specificeert het datatype van de te converteren data. Deze parameter kan elk van de Extended Store Procedure API-datatypes zijn.
src-
Is een verwijzing naar de data die omgezet moet worden. Deze parameter kan elk van de Extended Store Procedure API-datatypes zijn.
srclen
Specificeert de lengte, in bytes, van de te converteren data. Als srclen 0 is, plaatst srv_convert een nulwaarde in de bestemmingsvariabele. Tenzij het 0 is, wordt deze parameter genegeerd voor datatypes met vaste lengte, in welk geval de brongegevens als NULL worden beschouwd. Voor gegevens van het SRVCHAR-datatype geeft een lengte van -1 aan dat de string null-termined is.
desttype
Specificeert het datatype om de bron naartoe te converteren. Deze parameter kan elk van de Extended Store Procedure API-datatypes zijn.
dest
Is een pointer naar de bestemmingsvariabele die geconverteerde data ontvangt. Als deze pointer NULL is, roept srv_convert de door de gebruiker opgegeven fouthandler aan, indien aanwezig, en geeft -1 terug.
Als het desttype SRVDECIMAAL of SRVNUMERISCH is, moet de dest-parameter een aanwijzer zijn naar een DBNUMERISCHE of DBDECIMALE structuur waarbij de precisie- en schaalvelden van de structuur al op de gewenste waarden zijn gezet. Je kunt DEFAULTPRECISION gebruiken om een standaardprecisie te specificeren, en DEFAULTSCALE om een standaardschaal te specificeren.
Destlen
Specificeert de lengte, in bytes, van de bestemmingsvariabele. Deze parameter wordt genegeerd voor datatypes met vaste lengte. Voor een bestemmingsvariabele van het type SRVCHAR moet de waarde van destlen de totale lengte van de bestemmingsbufferruimte zijn. Een lengte van -1 voor een bestemmingsvariabele van het type SRVCHAR of SRVBINARY geeft aan dat er voldoende ruimte beschikbaar is. Voor een bestemmingsvariabele van het type srvchar zorgt een lengte van -1 ervoor dat de tekenreeks wordt null-termined.
Returns
De lengte van de geconverteerde data, in bytes, als de datatypeconversie slaagt. Wanneer srv_convert een verzoek om een conversie tegenkomt die niet wordt ondersteund, roept het de door de ontwikkelaar geleverde fouthandler aan, indien aanwezig, stelt een globaal foutnummer in en geeft -1 terug.
Remarks
De srv_willconvert functie bepaalt of een bepaalde conversie is toegestaan.
Het omzetten naar de benaderende numerieke datatypes SRVFLT4 of SRVFLT8 kan resulteren in enig verlies van precisie. Het omzetten van de benaderende numerieke datatypes SRVFLT4 of SRVFLT8 naar SRVCHAR of SRVTEXT kan ook leiden tot enig verlies van precisie.
Het omzetten naar SRVFLTx, SRVINTx, SRVMONEY, SRVMONEY4, SRVDECIMAAL of SRVNUMERIC kan leiden tot overflow als het getal groter is dan de maximale waarde van de bestemming, of tot onderstroom als het getal kleiner is dan de minimale waarde van de bestemming. Als er overflow optreedt bij het converteren naar SRVCHAR of SRVTEXT, bevat het eerste teken van de resulterende waarde een asterisk (*) om de fout aan te geven.
Bij het omzetten van SRVCHAR naar SRVBINAIR interpreteert srv_convert SRVCHAR als hexadecimaal, ongeacht of de string een leidende 0 bevat. Bij het omzetten van SRVBINARY naar SRVCHAR creëert srv_convert een hexadecimale string zonder een leidende 0. In alle andere gevallen is een conversie van of van het SRVBINAIRE datatype een rechtstreekse bit-kopie.
In bepaalde gevallen kan het nuttig zijn om een datatype naar zichzelf om te zetten. Bijvoorbeeld, het omzetten van SRVCHAR naar SRVCHAR met een destline van -1 voegt een null-terminator toe aan een string.
Voor een beschrijving van datatypes en Extended Store Procedure API-datatypeconversies, zie Data Types (Extended Stored Procedure API).
De srv_convert-functie kan om verschillende redenen falen:
De gevraagde conversie is niet beschikbaar.
De conversie resulteerde in afkap, overloop of verlies van precisie in de bestemmingsvariabele.
Er deed zich een syntaxisfout voor bij het omzetten van een tekenreeks naar een numeriek datatype.
Important
Je moet de broncode van extended stored procedures grondig bekijken en de gecompileerde DLL's testen voordat je ze installeert op een productieserver. Voor informatie over beveiligingsreview en testen, zie deze Microsoft-website.