2016-05-18 6 views
2

ich eine SQL-Abfrage geschrieben habe, wie unten für spezifisches Bindungsgeschäft in einem bestimmten Zeitraum zu suchen, ja, das ist eine Frage, VBScript ...Declare Wert von CSV für SQLCMD Abfrage

DECLARE @datefrom date = '01-Jul-2015' 
DECLARE @dateto date = '23-Aug-2015' 
SELECT CONVERT(nvarchar,[SaleDate],112) as SaleDate, year(saledate) as SaleYear, month(saledate) as salemonth, day(saledate) as saleday, 
COUNT([CustID]) as Customers, SUM([SaleTotal]) as SaleTotal 
FROM [Server].[dbo].[LoyaltyTransactions] 
WHERE LoyaltyTranTypeID =11 and SaleDate between @datefrom and @dateto 
GROUP BY convert(nvarchar,[SaleDate],112), year(saledate), month(saledate), day(saledate) 
ORDER BY convert(nvarchar,[SaleDate],112) 

Das Problem ist, ich weiß nicht Ich möchte das Datum von/auf jedes Mal ändern, wenn der Endbenutzer einen anderen Datumsbereich möchte, also habe ich beschlossen, mein erstes VBScript zu schreiben.

Ich habe es geschafft, Folgendes zu schreiben, dass von einer HTA-GUI aus die Endbenutzer starten & Enddatum (DD-MMM-YYYY) Eingabe in eine CSV-Datei.

<html> 
<head> 
<title>LRR</title> 
</head> 
<HTA:APPLICATION 
CONTEXTMENU="no" 
SCROLL="no" 
SINGLEINSTANCE="yes" 
Navigable="yes" 
BORDER="dialog" 
/> 
    <script language="VBScript"> 
    Sub SaveData 
     Set objFSO = CreateObject("Scripting.FileSystemObject") 
     If objFSO.FileExists("F:\DISKSETS\SCRIPTS\SQLREPORT\Report.txt") Then 
      objFSO.DeleteFile("F:\DISKSETS\SCRIPTS\SQLREPORT\Report.txt") 
      Set objFile = objFSO.CreateTextFile("F:\DISKSETS\SCRIPTS\SQLREPORT\Report.txt") 
      strLine = SD.Value & "," & ED.Value & "," 
      objFile.WriteLine strLine 
      objFile.Close 
     End If 
    End Sub 
    Sub Window_onLoad 
     window.resizeTo 320,230 
    End Sub 
      Sub RunProgram 
     Set objShell = CreateObject("Wscript.Shell") 
     objShell.Run "F:\DISKSETS\SCRIPTS\SQLREPORT\Report.vbs" 
    End Sub 
</script> 
<body> 
<p><span style="font-size:16px;">&nbsp;</span><u><strong><span style="font-size:16px;">Loyalty Redemption Report</span></strong></u></p> 
<p><strong><span style="font-size:14px;">&nbsp;START DATE : <input maxlength="14" name="SD" size="14" type="text" value="DD-MMM-YYYY" />&nbsp;</span></strong></p> 
<p><strong><span style="font-size:14px;">&nbsp; &nbsp;END DATE :&nbsp;<input maxlength="14" name="ED" size="14" type="text" value="DD-MMM-YYYY" /></span></strong></p> 
<p>&nbsp;<strong><span style="font-size:14px;"><input name="REPORT" type="button" value="REPORT" onclick="SaveData" /></span></strong></p> 
</body> 
</html> 

Hier ist, wo ich stecken Ich brauche jetzt die VBScript die beiden Daten aus der CSV zu ziehen und sie in SQL Query oben geschrieben ive.

Von dort aus kann SQLCMD verwenden, um die Abfrage in VBSCript zur Ausgabe an Excel zu erhalten.

TIA.

Antwort

0

Sie haben SD.Value und ED.Value (vermutlich sind das die Daten) bereits abgerufen, also warum sie nicht einfach an den vbscript-Aufruf als Parameter übergeben?

<html> 
<head> 
<title>LRR</title> 
</head> 
<HTA:APPLICATION 
CONTEXTMENU="no" 
SCROLL="no" 
SINGLEINSTANCE="yes" 
Navigable="yes" 
BORDER="dialog" 
/> 
    <script language="VBScript"> 
    Sub SaveData 
     RunProgram SD.Value, ED.Value 
    End Sub 
    Sub Window_onLoad 
     window.resizeTo 320,230 
    End Sub 
    Function RunProgram(startDate, endDate) 
     Set objShell = CreateObject("Wscript.Shell") 
     objShell.Run "F:\DISKSETS\SCRIPTS\SQLREPORT\Report.vbs " & startDate & " " & endDate 
    End Function 
</script> 
<body> 
<p><span style="font-size:16px;">&nbsp;</span><u><strong><span style="font-size:16px;">Loyalty Redemption Report</span></strong></u></p> 
<p><strong><span style="font-size:14px;">&nbsp;START DATE : <input maxlength="14" name="SD" size="14" type="text" value="DD-MMM-YYYY" />&nbsp;</span></strong></p> 
<p><strong><span style="font-size:14px;">&nbsp; &nbsp;END DATE :&nbsp;<input maxlength="14" name="ED" size="14" type="text" value="DD-MMM-YYYY" /></span></strong></p> 
<p>&nbsp;<strong><span style="font-size:14px;"><input name="REPORT" type="button" value="REPORT" onclick="SaveData" /></span></strong></p> 
</body> 
</html> 

In Ihrem vbscript, werden diese Parameter zugänglich sein WScript.Arguments(0) und WScript.Arguments(1) mit Angabe der ersten und zweiten Parameter übergeben werden.

Verwandte Themen