J'ai une feuille Excel avec une colonne nommée sqlQueries. Chaque cellule a un ensemble de requêtes à exécuter.Comment exécuter plusieurs requêtes en qtp en une seule fois à l'aide d'un seul objet
Je suis en mesure d'exécuter des requêtes sumple utilisant qtp Mais les cellules qui ont de multiples déclarations comme par exemple dans la cellule (x, 6) la requête ci-dessous présente: " utilisation LDatabase Exec sp_DropObjectIfExists « #temptable »; Sélectionner col1 dans #temptable de maintable; Update #temptable réglé ColV = 5 comptage de sélection (1) totalCount de #temptable "
ci-dessus est juste un exemple et pas la requête SQL exacte. Cet ensemble complet se trouve dans une seule cellule de feuille Excel. Je veux que cela soit exécuté en utilisant Qtp.
Actuellement, ce que je fais en qtp est:
Set objconnection = CreateObject("ADODB.Connection")
objconnection.open"provider=blah blah blah"
Set objrecordset= CreateObject("ADODB.Recordset")
ws.cells(x,6).select ''''the above sql queries set is in this cell
Sqlquery1= ws.cells(x,6).value
objrecordset.Open Sqlquery1. objconnection
Value1=objrecordset.Fields.Item(0)
Pour la dernière ligne ci-dessus, je reçois une erreur disant « Les produits ne peuvent pas être trouvés dans la collection correspondant au requestef nom ou ordinale »
Je suppose que c'est parce qu'il y a plusieurs instructions dans une seule cellule qui doivent être excitées mais seulement la première ligne qui est "use LDatabase" est en cours d'exécution. Et pas tout le contenu de la cellule.
Pourriez-vous s'il vous plaît m'aider à exécuter le tout en un seul coup.
Merci!
'Sqlquery1. objconnection' devrait lire 'Sqlquery1, objconnection'. Est-ce que les requêtes de chaque cellule renvoient toujours une table? Si oui, est-ce toujours une table? –
Oui. Chaque ensemble de requêtes dans une cellule renvoie une table. – Neha
[Recommandé par Microsoft] (https://support.microsoft.com/fr-fr/help/235340/prb-erreur-messaging-referencing-temp-table-avec-ado-sqloledb) vous ajoutez SET NOCOUNT ON à des requêtes contenant des tables temporaires. Cela vous permettra également d'inclure des instructions de déclaration (exemple: 'DECLARE @MyVar INT = 5;'). –