HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

MS SQL tárolt eljárások


MS SQL tárolt eljárások 16. rész

Példaprogram letöltése

8368 bájt

A Microsoft SQL tárolt eljárásairól szóló cikksorozat 16. részében két olyan tárolt eljárást ismertetünk, amelyek közül az egyik a sztringek összeállítását, a másik pedig a szétbontását teszi lehetővé. Az első tárolt eljárás egy minta sztring, és paraméterek segítségével képes összeállítani egy új sztringet. A másik eljárás egy különböző paramétereket tartalmazó sztringet tud szétbontani egy megadott minta alapján úgy, hogy a paraméterek értékét egy-egy változóba másolja át.

xp_sprintf.sql: Sztring összeállítása paraméterekből
Az első tárolt eljárás amiről beszélünk az sp_sprintf. Ez az eljárás egy minta sztringből, és tetszőleges számú paraméterből képes összeállítani egy sztringet, amelybe az adott helyekre beszúrja a paramétereket. Az eljárás leginkább a Delphi format, vagy a C nyelvben használt sprintf függvényekhez hasonlítható. Az eljárás szintaxisa a következő:
xp_sprintf {string OUTPUT, format} [, argument [,...n]]
Az eljárás paraméterei a következők:
string
Ebben a paraméterben kell megadnunk azt a varchar típusú változót, amibe az eredmény sztringet várjuk.
format
Ez a paraméter tartalmazza a formátum sztringet. A formátum sztring speciális karaktereket tartalmazhat, amelyek helyére az argument paraméterek kerülnek beillesztésre. Az eljárás egyelőre csak a %s kódot támogatja, amelynek helyére sztringet tud beilleszteni. Az első előforduló %s helyére az első argumentum kerül, a második helyére a második argumentum, és így tovább. A formátum sztringnek annyi %s kódot kell tartalmaznia, amennyi beillesztendő argumentumot megadunk. Ha ezeknek eltérő a számuk, akkor sem kapunk hibaüzenetet. Ha a %s kódok száma több mint az argumentumok száma, akkor egyszerűen törli ezeket a sztringből. Ellenkező esetben azok az argumentumok kimaradnak, amelyekhez nem tartozik %s kód. Ha nem adunk meg egyetlen argumentumot sem, akkor NULL sztringet kapunk eredményül.
argument
Ebben a paraméterben adhatjuk meg a sztringbe illesztendő argumentumokat. Tetszőleges számú argumentumot megadhatunk, egymástól vesszővel elválasztva.
use Master;
declare @str varchar(256);
declare @year as varchar(4);
declare @month as varchar(2);
declare @day as varchar(2);
set @year=CAST(YEAR(GetDate()) as varchar(4));
set @month=CAST(MONTH(GetDate()) as varchar(2));
set @day=CAST(DAY(GetDate()) as varchar(2));
exec xp_sprintf @str output, '%s. év %s. hónap %s. nap', @year, @month, @day
select @str;
xp_sscanf.sql: Sztring szétbontása egy formátum sztring alapján.
Ez az eljárás az xp_scanf, az xp_sprintf eljárás fordítottja. Ezzel az eljárással könnyedén kiolvashatunk paramétereket egy paraméter sztringből.
Az eljárás szintaxisa a következő:
xp_sscanf {string OUTPUT, format} [, argument [,...n]]
Az eljárás paraméterei:
string
Ebben a paraméterben kell megadni a paramétereket tartalmazó sztringet, vagy varchar típusú változót. A függvény a C nyelvben is használt sscanf függvény megfelelője, de csak a %s kódot támogatja.
format
Ebben a paraméterben kell megadnunk azt a formátum sztringet, ami alapján a string paraméter értékét feldolgozza. Értéke annyiban különbözik a string paraméter értékétől, hogy a paraméterek értékeinek helyén %s karakterek állnak.
argument
Ebben a paraméterben adhatjuk meg azokat a varchar típusú változókat, amelyekbe a paraméterek értékeit várjuk. Tetszőleges számú változó megadható egymás után vesszővel elválasztva.
use Master;
declare
  @year varchar(20),
  @month varchar(20),
  @day varchar(20),
  @source varchar(256);
set @source = 'date -y2000 -m01 -d12';
exec xp_sscanf @source, 'date -y%s -m%s -d%s',
   @year output, @month output, @day output
select @source as Forras, @year as Ev, @month as Honap, @day as Nap;

Cikksorozat

#IDKategóriaCikk címeSorozat
1488DelphiMS SQL tárolt eljárások1. rész
1499DelphiMS SQL tárolt eljárások2. rész
1507DelphiMS SQL tárolt eljárások3. rész
1519DelphiMS SQL tárolt eljárások4. rész
1526DelphiMS SQL tárolt eljárások5. rész
1537DelphiMS SQL tárolt eljárások6. rész
1546DelphiMS SQL tárolt eljárások7. rész
1553DelphiMS SQL tárolt eljárások8. rész
1564DelphiMS SQL tárolt eljárások9. rész
1573DelphiMS SQL tárolt eljárások10. rész
1582DelphiMS SQL tárolt eljárások11. rész
1591DelphiMS SQL tárolt eljárások12. rész
1600DelphiMS SQL tárolt eljárások13. rész
1609DelphiMS SQL tárolt eljárások14. rész
1617DelphiMS SQL tárolt eljárások15. rész
1626DelphiMS SQL tárolt eljárások16. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 451. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |