|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
![]() ![]() Yves Développeur informatique Inscription : janvier 2007 Messages : 3 880 ![]() |
Salut à tous, j'ai une requete bien arude que je ne sais pas construire.
J'ai, actuellement un dataset (.net) branché sur une base SQL et rempli par une requete spécifique style SELECT A,B,C,... FROM MaTableSQLDans le cas d'une migration d'application, je dois désormais brancher mon dataset, aussi, sur une base propriétaire accessible à travers un driver ODBC. Donc en gros il faudra que je modifie ma requete du dataset de la sorte : Code :
__________________
Sevyc64 --- Le partage est notre force NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS |
||
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Serge LESPAGNARDConsultant informatique Inscription : janvier 2004 Messages : 588 ![]() |
Pourquoi ne pas utiliser un linked server dans ce cas ?
|
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Ca ne marche pas en liant la base ODBC à ton serveur SQL Server ?
Sinon, tu peux faire deux dataset en .NET, et les merger ensuite depuis le code, ça doit se faire, et ce sera pas forcément plus lent. Sinon, d'après ce que j'ai compris, il vaut mieux faire un : Code :
|
||
|
|
10
|
|
|
#4 |
![]() ![]() Yves Développeur informatique Inscription : janvier 2007 Messages : 3 880 ![]() |
oui, mes requêtes auront des filtres, différent pour chaque requête en plus.
J'en suis à récupérer le code de la première requête qui fait déjà une trentaine de ligne et je vais essayer d'y greffer dessus la seconde que je dois créer.
__________________
Sevyc64 --- Le partage est notre force NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS |
|
|
00
|
|
|
#5 |
![]() ![]() Yves Développeur informatique Inscription : janvier 2007 Messages : 3 880 ![]() |
Bon j'ai fait quelques tests, non concluant. Comme provider pour openRowSet, j'utilise MSDAOSP, mais j'ai systématiquement une erreur comme quoi le serveur doit être lié.
Je n'ai pas accès au serveur SQL et le driver ODBC n'est pas installé sur le serveur physique ou tourne le serveur SQL. J'ai donc essayer sur mon poste avec un SQLExpress, mais je ne peux pas monter mon ODBC en serveur lié, car apparement le SQLExpress est un 64bits et mon driver n'est compatible que 32bits. Faut-il obligatoirement un serveur lié pour openrowset ?
__________________
Sevyc64 --- Le partage est notre force NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Pas à ma connaissance.
Normalement, une fois que tu as indiqué le provider, tu peux spécifier une connexion string "dsn less", qui devrait t'affranchir de la notion de serveur lié. A vérifier tout de même, ça fait (TRES) longtemps que j'y a pas touché, et c'était avec SQL Server 2000, ça a peut-être changé depuis ! |
|
|
00
|
|
|
#7 |
![]() ![]() Yves Développeur informatique Inscription : janvier 2007 Messages : 3 880 ![]() |
Le serveur de prod est un SQL2000 et j'utilise ça :
Code :
FROM openrowset('MSDAOSP',DSN=toto;uid=titi;pwd=tutu','SELECT ...')
__________________
Sevyc64 --- Le partage est notre force NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS |
|
|
00
|
|
|
#8 |
|
Membre chevronné
![]() Serge LESPAGNARDConsultant informatique Inscription : janvier 2004 Messages : 588 ![]() |
Oui mais il faut quand même que le driver adéquat soit installé dans le serveur.
Quel est le type de db à accéder en odbc ? |
|
|
00
|
|
|
#9 |
![]() ![]() Yves Développeur informatique Inscription : janvier 2007 Messages : 3 880 ![]() |
base propriétaire SAGE
__________________
Sevyc64 --- Le partage est notre force NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS |
|
|
00
|
|
|
#10 |
|
Membre chevronné
![]() Serge LESPAGNARDConsultant informatique Inscription : janvier 2004 Messages : 588 ![]() |
Il faut donc installer les drivers pour accéder à cette db propriétaire et créer une source de données système (ODBC) dans le serveur sql, et openrowset devrait alors fonctionner correctement.
|
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Je vois aussi que votre connexion string passe par un DSN (ça existe encore ça ?
N'oubliez donc pas de le créer dans le panneau de configuration (sources de données 32 bits) |
|
|
00
|
|
|
#12 |
![]() ![]() Yves Développeur informatique Inscription : janvier 2007 Messages : 3 880 ![]() |
ben oui, ça existe encore ! Les connexions ODBC passent par des sources DSN.
Par contre, mon SQLExpress tourne en 64bits apparemment, comment le faire tourner en 32bits pour pouvoir faire mes tests avant d'attaquer le serveur de prod ? L'instance est modifiable, ou il faut réinstaller une nouvelle instance ?
__________________
Sevyc64 --- Le partage est notre force NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS |
|
|
00
|
|
|
#13 | |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Citation:
En revanche, à part réinstaller SQL Server Express en version 32 bits, je n'ai pas de solution à vous proposer. PS : Et chez Sage, ils ont pas de drivers 64 bits ? |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com