Search  
Friday, May 25, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Client/Server  select parametr...
 select parametrizat
 
 6/3/2006 8:41:36 AM
User is offlineAlin Berce
371 posts
3rd




select parametrizat
 (Romania) Modified By Alin Berce  on 6/3/2006 8:44:20 AM)
Salutare tuturor,

As dori sa va intreb daca se poate sa fac urmatorul lucru in sql server 7:
am urmatorul select intr-o procedura stocata:

SELECT DATA,
CASE USERNAME WHEN 'USER1' THEN rez END AS USER1,
CASE USERU WHEN 'USER2' THEN rez END AS USER2
FROM mycrs

Selectul de mai sus functioneaza, ceea ce as vrea eu sa fac este sa il parametrizez, adica sa iau printr-un select toti userii: user1,user2,user3... etc si sa ii folosesc in loc de
case username when @parametru then rez END as @parametru....

se poate face asa ceva?

VFP, C#, SQL Server 2005/2008
"Proud to be a ProFox member".
 6/3/2006 3:41:02 PM
User is offlineCLASSOFT
231 posts
www.classoft.ro
4th


Re: select parametrizat
 (N/A) Modified By CLASSOFT  on 6/3/2006 3:42:06 PM)
Eu intai asi verifica  numarul maxim de useri USERx unde x este maximum cu functia SUBSTRIM.
Pe urma asi genera dinamic procedura stocata catre server pentru x.

Este putin confuza problema ta , era bine sa dai mai multe amanunte.

Cristi Birlea - CLASSOFT
 6/4/2006 2:09:37 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: select parametrizat
 (Romania)

 Alin B. wrote
Salutare tuturor,

As dori sa va intreb daca se poate sa fac urmatorul lucru in sql server 7:
am urmatorul select intr-o procedura stocata:

SELECT DATA,
CASE USERNAME WHEN 'USER1' THEN rez END AS USER1,
CASE USERU WHEN 'USER2' THEN rez END AS USER2
FROM mycrs

Selectul de mai sus functioneaza, ceea ce as vrea eu sa fac este sa il parametrizez, adica sa iau printr-un select toti userii: user1,user2,user3... etc si sa ii folosesc in loc de
case username when @parametru then rez END as @parametru....

se poate face asa ceva?

Salut, Alin

"Parametru" inseamna exact ceea ce inseamna - o valoare care se schimba si care stabileste setul de inregistrari returnat. Tu aici vrei altceva: o generare dinamica a instructiunii SQL, chestie la care parametrii nu te ajuta.

Trecand peste faptul ca este posibil ca setul de date sa faca imposibila generarea comenzii (daca ai 1000 de useri diferiti, sa zicem, linia SQL generata depaseste numarul de caractere maxim admis pentru o comanda T-SQL, care, daca nu ma insel, e de 8000 de caractere), tie iti trebuie un CASE care sa aiba cand mai multe, cand mai putine "ramuri".

Sfatul meu este sa generezi IN CLIENT textul comenzii tinand cont de date si apoi sa o executi cu SQLExec() - renuntand la procedura stocata pe server.


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 6/5/2006 2:42:08 PM
User is offlineAlin Berce
371 posts
3rd




Re: select parametrizat
 (Romania)
Salut Grig,

Iti multumesc ca mi-ai explicat cum sta treaba. La mine CLIENT inseamna o pagina dot net in care afisez rezultatul respectivului select care de fapt face un crosstab pe doua tabele.
Avand in vedere ca as avea maxim 30 de useri cred ca s-ar putea genera si un select dinamic. Problema mea e ca nu stiu cum... nu m-am mai lovit pana acum de asa ceva. Oricum ma pun sa caut pe net sa vad ce gasesc.

VFP, C#, SQL Server 2005/2008
"Proud to be a ProFox member".
 6/5/2006 4:26:52 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: select parametrizat
 (Romania)
Pai pagina aia in .NET are si ea un codebehind, nu-i asa? Ai putea acolo sa numeri cati useri sunt, apoi sa construiesti textul comenzii SQL intr-o variabila de memorie si sa executi textul ala cu un sqlreader sau cum se numeste ala. Ideea este sa nu ai codul SQL scris in clar, ci sa-l generezi functie de cati useri sunt si sa-l executi. Dupa aia nu mai ai nevoie de el. Cand iti trebuie din nou, il mai generezi o data.
Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
  Visual FoxPro  Client/Server  select parametr...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement