Search  
Thursday, May 24, 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  .NET Interop  accesarea API-u...
 accesarea API-ului SQL SMO din VFP ver. 7
 
 7/13/2011 11:43:25 AM
User is offlinesarateanu
32 posts


accesarea API-ului SQL SMO din VFP ver. 7
 (N/A)
cum se poate accesa api-ul sql smo din VFP 7 ? vreau sa creez programatic o BD pe server din aplicatia client. am creat o StoredProcedure pe server dbo.RestoreDatabase ..care are ca parametru de intrare @dbname ...si care functioneaza perfect din SSMS (Sql Server Management Studio). .. din aplicatia VFP : nu functioneaza corect cu SQLEXEC (vezi threat postat si pe SQLSERVER.RO: http://sqlserver.ro/forums/thread/8851.aspx) am reusit cu api-ul sql dmo, astfel: observer = CREATEOBJECT("SQLDMO.SQLServer") WITH observer .Connect("laptop\prodatasql","sorin","xxxxx") .ExecuteImmediate("exec [prodata].dbo.restoredatabase 'test_db'") .close ENDWITH RELEASE observer .. si functioneaza corect ...numai ca ... Api-ul SQL-DMO este inlocuit de SQL - SMO ..care este sub dot.net ... cum pot accesa api-ul smo din VFP ver 7. ?
 7/13/2011 12:38:35 PM
User is offlineDaniel Buduru
2334 posts
1st




Re: accesarea API-ului SQL SMO din VFP ver. 7
 (N/A)
Executa comanda
SQLEXEC(nConnHandle, 'SET IMPLICIT_TRANSACTIONS OFF')
apoi poti crea baza de date cu sqlexec, fie cu comenzi directe, fie apeland procedura stocata.
Nu uita sa resetezi tranzactiile implicite daca mai executi si altceva pe aceeasi conexiune.

Daniel Buduru
 7/13/2011 12:58:09 PM
User is offlinesarateanu
32 posts


Re: accesarea API-ului SQL SMO din VFP ver. 7
 (N/A)
in modul syncron ..aceeasi eroare: "Connectivity error: Unable to retrieve specific error information. Driver is probably out of resources" in modul asyncron .. SQLEXEC() intoarce 1 (succes)..dar nu face nimic pe server ...
 7/13/2011 1:12:23 PM
User is offlineDaniel Buduru
2334 posts
1st




Re: accesarea API-ului SQL SMO din VFP ver. 7
 (N/A)
La mine merge asa, pot crea o baza de date pe server.
Verifica driverul si drepturile de acces pe server ale userului cu care te loghezi.
Logheaza-te cu acelasi user in ssms si vezi daca poti executa comenzile.

Daniel Buduru
 7/13/2011 1:20:01 PM
User is offlinesarateanu
32 posts


Re: accesarea API-ului SQL SMO din VFP ver. 7
 (N/A)
.. tot cu vfp ver 7 ? .. ..ma loghez cu acelasi user si din VFP si din SSMS ..
 7/13/2011 1:21:59 PM
User is offlinesarateanu
32 posts


Re: accesarea API-ului SQL SMO din VFP ver. 7
 (N/A)
..din ssms ... merge perfect ... ...din vfp .. merge doar cu SQLDMO ...
 7/13/2011 1:22:35 PM
User is offlinesarateanu
32 posts


Re: accesarea API-ului SQL SMO din VFP ver. 7
 (N/A)
scuze .. din VFP ..si cu adodb
 7/13/2011 1:33:52 PM
User is offlineDaniel Buduru
2334 posts
1st




Re: accesarea API-ului SQL SMO din VFP ver. 7
 (N/A)
Verifica versiunea driverului ODBC pe care il folosesti.
Incearca cu DRIVER={SQL Server Native Client 10.0} in stringul de conectare.


Daniel Buduru
 7/13/2011 1:43:00 PM
User is offlinesarateanu
32 posts


Re: accesarea API-ului SQL SMO din VFP ver. 7
 (N/A)
stringul de conectare este: "DRIVER={SQL Server Native Client 10.0};SERVER=laptop\prodatasql;DATABASE=prodata;Uid=sorin;Pwd=xxxxx;WSID=LAPTOP;APP=Prodata Erp" ...are rost sa incerc o reinstalare a VFP oare ?
 7/13/2011 1:48:32 PM
User is offlineDaniel Buduru
2334 posts
1st




Re: accesarea API-ului SQL SMO din VFP ver. 7
 (N/A)
Problema nu e in VFP, ci in driverul ODBC. Daca poti crea baza de date pe o conexiune ADO, vfp iese din discutie.
Mai degraba reinstalezi driverul. Ia-l pe cel din kit-ul serverului.
Driverul nu pune probleme la accesarea datelor, chiar daca sunt tipuri de date pe care nu le stie. Situatia este alta la crearea bazelor de date si a tabelelor, driverul trebuie sa stie tipurile de date si structurile utilizate in versiunea de server pe care il acceseaza.
La mine functioneaza cu clientul instalat odata cu sql 2008 R2.

Daniel Buduru
 7/13/2011 3:16:13 PM
User is offlinesarateanu
32 posts


Re: accesarea API-ului SQL SMO din VFP ver. 7
 (N/A)
cred ca procedura de pe server era de vina pt. eroarea aia ciudata :
"Connectivity error: Unable to retrieve specific error information. Driver is probably out of resources"
..si nu driverul ..


.. am scos 2 linii din procedura dbo.restoredatabase, si anume:

RESTORE FILELISTONLY
FROM bckupdev_prodatamodel

nu erau necesare pt. ca bckupdev_prodatamodel este definit ca Backup devices la Server Objects ..

rezultatul : cand apelez procedura din VFP ..i-mi intoarce o eroare mai inteligibila (si poate de inteles) si anume:
"Connectivity error:.... Cannot perform a backup or restore operation within a transaction."

in afara de asta, SQLEXEC functiona corect cu alte proceduri stocate ..


 7/13/2011 3:19:24 PM
User is offlinesarateanu
32 posts


Re: accesarea API-ului SQL SMO din VFP ver. 7
 (N/A)
..caz in care ... revin la intrebarea : cum pot sa creez pe serverul sql o BD din aplicatia VFP ?

create database ... nu este permis
restore database ... la fel


 7/13/2011 4:03:05 PM
User is offlineDaniel Buduru
2334 posts
1st




Re: accesarea API-ului SQL SMO din VFP ver. 7
 (N/A) Modified By Daniel Buduru  on 7/13/2011 4:28:09 PM)
Din documentatie (http://msdn.microsoft.com/en-us/library/ms176061.aspx), comanda CREATE DATABASE (la remarks):

The CREATE DATABASE statement must run in autocommit mode (the default transaction management mode) and is not allowed in an explicit or implicit transaction. For more information, see Autocommit Transactions.

Si la RESTORE (tot la remarks):

RESTORE is not allowed in an explicit or implicit transaction.

Prin urmare, trebuie sa executi comanda  SET IMPLICIT_TRANSACTIONS OFF inainte de comanda CREATE DATABASE.
Incearca asta:
CLEAR ERROR
SQLEXEC(nconnhandle,'SET IMPLICIT_TRANSACTIONS OFF')
SQLEXEC(nconnhandle,'CREATE DATABASE test_db')
IF AERROR(ae) >0
  ? ae[2]
ENDIF
SQLEXEC(nconnhandle,[select * from master..sysdatabases where name='test_db'],'crsresult')
browse



Daniel Buduru
 7/14/2011 8:41:15 AM
User is offlinesarateanu
32 posts


Re: accesarea API-ului SQL SMO din VFP ver. 7
 (N/A)
comada "SQLEXEC(nconnhandle,'SET IMPLICIT_TRANSACTIONS OFF')" .. intoarce 1 ..deci succes ...

urmatoarea: ..."SQLEXEC(nconnhandle,'CREATE DATABASE test_db')" .. intoarce -1 ...

am facut aerror(err) si .. err(2)="Connectivity error: [Microsoft][SQL Server Native Client 10.0][SQL Server]CREATE DATABASE statement not allowed within multi-statement transaction."

 7/14/2011 8:56:01 AM
User is offlinesarateanu
32 posts


Re: accesarea API-ului SQL SMO din VFP ver. 7
 (N/A)
... merge cu "SQLSETPROP(nconnhandle,"Transactions",1)" ... il aveam setat pe 2 (manual transaction)


Multumesc Daniel pt. promptitudine ...

..dar acum .. revenind la api-ul SQL SMO ..... crezi ca ar fi o idee mai buna (mai rapida, mai sigura) sa il utilizez (in cazul in care reusesc din VFP 7.) pt. task-uri de genul "create database" ..sau altele ..administrative
in defavoarea lui SQLEXEC ? ..
 7/14/2011 9:32:18 AM
User is offlineDaniel Buduru
2334 posts
1st




Re: accesarea API-ului SQL SMO din VFP ver. 7
 (N/A)
Pentru SMO, nu stiu vreo solutie, desi undeva am gasit o afirmatie ca ar expune o interfata com.
Cata vreme comenzile pot fi rulate din VFP, nu vad necesitatea executarii lor cu smo.
Din VFP poti rula, intr-o singura comanda, un script intreg. Trebuie doar sa ai grija cu drepturile de acces, nu e indicat sa rulezi aplicatia cu drepturi de acces elevate, asa cum le cere crearea bazei de date. Poti crea un modul separat, apelabil din aplicatie,  care sa se ocupe exclusiv de configurare, si care sa ruleze cu un user diferit de cel utililizat in aplicatie.


Daniel Buduru
 7/14/2011 9:46:00 AM
User is offlineneagu_laurentiu
101 posts
5th


Re: accesarea API-ului SQL SMO din VFP ver. 7
 (N/A) Modified By neagu_laurentiu  on 7/14/2011 9:46:22 AM)
Folosesti .NET Extender cu al sau CLRCreateObject(...) pentru tot ce e .NET
 7/14/2011 9:57:22 AM
User is offlinesarateanu
32 posts


Re: accesarea API-ului SQL SMO din VFP ver. 7
 (N/A)
..super ... nu stiam ca exista .. ma bucur sa aud ca pot face "dot.net" din VFP ver. 7 ...

  Visual FoxPro  .NET Interop  accesarea API-u...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement