这是我们的设置.py你知道吗
'default': {
'NAME': 'OUR_SERVER_NAME',
'ENGINE': 'sqlserver_ado',
'HOST': 'OUR_SERVER_IP',
'USER': 'USER',
'PASSWORD': 'OUR_SERVER_PASSWORD',
'PORT': '1433',
'OPTIONS' : {
'provider': 'SQLOLEDB',
'extra_params' : 'DataTypeCompatibility=80;MARS Connection=True'
}
}
我们使用的是Django 1.6.6和python 2.7,我们试图调用这个存储过程(它返回一个temp表):
CREATE PROCEDURE "prova_excel"()
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
SELECT @sys = CONVERT(varchar, SYSDATETIME(), 121)
print @sys
create table #temp(
"CODICE_ARTICOLO" VARCHAR(50) NULL DEFAULT NULL,
"MODELLO" VARCHAR(50) NULL DEFAULT NULL,
"ARTICOLO" VARCHAR(50) NULL DEFAULT NULL,
"DESCRIZIONE" VARCHAR(50) NULL DEFAULT NULL,
"MATERIALE" VARCHAR(50) NULL DEFAULT NULL,
"LINE" VARCHAR(50) NULL DEFAULT NULL,
"COLORE" VARCHAR(50) NULL DEFAULT NULL,
"COLORE_2" VARCHAR(50) NULL DEFAULT NULL,
"LG" VARCHAR(50) NULL DEFAULT NULL,
"SESSO" VARCHAR(50) NULL DEFAULT NULL,
"LISTINO_ARTICOLO" FLOAT(53) NULL DEFAULT NULL,
"PREZZO_RETAIL_ARTICOLO" FLOAT(53) NULL DEFAULT NULL,
"MADE_IN" VARCHAR(50) NULL DEFAULT NULL,
"NOTE" VARCHAR(50) NULL DEFAULT NULL,
"BRAND_ID" INT NULL DEFAULT NULL,
"STAGIONE_ID" INT NULL DEFAULT NULL,
"COMPANY_ID" INT NULL DEFAULT NULL,
"ID_EXCEL" INT NULL DEFAULT NULL,
"ID_FILE" INT NULL DEFAULT NULL,
"RIGA_ORDERS" VARCHAR(50) NULL DEFAULT NULL,
"RAGIONE_SOCIALE_FORNITORE" VARCHAR(50) NULL DEFAULT NULL,
"RAGIONE_SOCIALE_CLIENTE" VARCHAR(50) NULL DEFAULT NULL,
"PREZZO_FORNITORE" FLOAT(53) NULL DEFAULT NULL,
"PREZZO_CLIENTE" FLOAT(53) NULL DEFAULT NULL,
"PREZZO_LISTINO" FLOAT(53) NULL DEFAULT NULL,
"PREZZO_RETAIL" FLOAT(53) NULL DEFAULT NULL,
"TOTALE_PREZZO_FORNITORE" FLOAT(53) NULL DEFAULT NULL,
"TOTALE_PREZZO_CLIENTE" FLOAT(53) NULL DEFAULT NULL,
"TOTALE_PREZZO_LISTINO" FLOAT(53) NULL DEFAULT NULL,
"QTA_TOTALE" INT NULL DEFAULT NULL,
"GESTIONE_FORNITORE" VARCHAR(50) NULL DEFAULT NULL,
"GESTIONE_CLIENTE" VARCHAR(50)NULL DEFAULT NULL,
"NOME_PRODOTTO" VARCHAR(50)NULL DEFAULT NULL,
"TIPO_TAGLIA" VARCHAR(50) NULL DEFAULT NULL,
"MAX_POSITION" INT NULL DEFAULT NULL)
DECLARE @Script as VARCHAR(8000)
DECLARE @Max_pos as INT
DECLARE @i as INT
DECLARE @iString as VARCHAR(10)
DECLARE @idExcel as INT
SET @Script = ''
SET @i = 1
SELECT @Max_pos = MAX(POSIZIONE)
FROM GRIGLIA_TAGLIE
WHILE @i <= @Max_pos
BEGIN
SET @iString = LTRIM(STR(@i,10))
SET @Script = @Script + 'ALTER TABLE #temp ADD POSIZIONE_'+@iString+' VARCHAR(100);'
SET @i = @i + 1
END
print @Script
Exec (@Script)
INSERT INTO #temp(CODICE_ARTICOLO, MODELLO, ARTICOLO, DESCRIZIONE, MATERIALE, LINE, COLORE, COLORE_2, LG, SESSO, LISTINO_ARTICOLO, PREZZO_RETAIL_ARTICOLO,
MADE_IN, NOTE, BRAND_ID, STAGIONE_ID, COMPANY_ID, ID_EXCEL, ID_FILE, RIGA_ORDERS, RAGIONE_SOCIALE_FORNITORE, RAGIONE_SOCIALE_CLIENTE,
PREZZO_FORNITORE, PREZZO_CLIENTE, PREZZO_LISTINO, PREZZO_RETAIL, TOTALE_PREZZO_FORNITORE, TOTALE_PREZZO_CLIENTE, TOTALE_PREZZO_LISTINO,
QTA_TOTALE, GESTIONE_FORNITORE, GESTIONE_CLIENTE, NOME_PRODOTTO, MAX_POSITION)
SELECT CODICE_ARTICOLO,
MODELLO,
ARTICOLO,
DESCRIZIONE,
MATERIALE,
LINE,
COLORE,
COLORE_2,
LG,
SESSO,
PREZZO_LISTINO LISTINO_ARTICOLO,
PREZZO_RETAIL PREZZO_RETAIL_ARTICOLO,
MADE_IN,
NOTE,
BRAND_ID,
STAGIONE_ID,
COMPANY_ID,
ID_EXCEL,
ID_FILE,
RIGA_ORDERS,
RAGIONE_SOCIALE_FORNITORE,
RAGIONE_SOCIALE_CLIENTE,
PREZZO_FORNITORE,
PREZZO_CLIENTE,
PREZZO_LISTINO,
PREZZO_RETAIL,
TOTALE_PREZZO_FORNITORE,
TOTALE_PREZZO_CLIENTE,
TOTALE_PREZZO_LISTINO,
QTA_TOTALE,
GESTIONE_FORNITORE,
GESTIONE_CLIENTE,
NOME_PRODOTTO,
@Max_pos MAX_POSITION
from orders_excel
where ID_FILE = @ID_FILE AND
ORDINE_CREATO = 0
DECLARE @Id as INT
DECLARE @IdTaglia as INT
DECLARE @qtaOrders as INT
DECLARE @tipoTaglia as VARCHAR(50)
DECLARE @valoreTaglia as VARCHAR(50)
DECLARE @posizione as INT
DECLARE @updateTemp as VARCHAR(8000)
DECLARE @updateScript as VARCHAR(max)
SET @updateScript = ''
DECLARE Cur1 CURSOR FOR
SELECT ID_EXCEL
FROM orders_excel
WHERE ID_FILE = @ID_FILE
OPEN Cur1
FETCH NEXT FROM Cur1 INTO @idExcel
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE Cur2 CURSOR FOR
SELECT a.ID, a.ID_TAGLIA, a.ID_EXCEL, a.QTA_ORDERS, b.TIPO_TAGLIA, b.VALORE_TAGLIA, b.POSIZIONE
FROM ORDERS_EXCEL_TAGLIE a, GRIGLIA_TAGLIE b
WHERE a.ID_TAGLIA = b.ID_TAGLIA and
ID_EXCEL = @idExcel
OPEN Cur2
FETCH NEXT FROM Cur2 INTO @Id,@IdTaglia,@IdExcel, @qtaOrders, @tipoTaglia,@valoreTaglia, @posizione
WHILE @@FETCH_STATUS = 0
BEGIN
SET @updateTemp = 'UPDATE #temp SET TIPO_TAGLIA = ''[x]'', POSIZIONE_[y] = ''[z]'' WHERE ID_EXCEL = ''[w]'';'
SET @updateTemp = REPLACE(@updateTemp,'[x]',@tipoTaglia)
SET @updateTemp = REPLACE(@updateTemp,'[y]',@posizione)
SET @updateTemp = REPLACE(@updateTemp,'[z]',@qtaOrders)
SET @updateTemp = REPLACE(@updateTemp,'[w]',@IdExcel)
SET @updateScript = @updateScript + @updateTemp
FETCH NEXT FROM Cur2 INTO @Id,@IdTaglia,@IdExcel, @qtaOrders, @tipoTaglia,@valoreTaglia, @posizione
END
CLOSE Cur2
DEALLOCATE Cur2
FETCH NEXT FROM Cur1 INTO @idExcel
END
PRINT @updateScript
SELECT @sys = CONVERT(varchar, SYSDATETIME(), 121)
PRINT @sys
Exec (@updateScript)
CLOSE Cur1
DEALLOCATE Cur1
SELECT @sys = CONVERT(varchar, SYSDATETIME(), 121)
PRINT @sys
SELECT * FROM #temp
RETURN;
END
我们正在尝试这样做:
from django.db import connection
cursor = connection.cursor()
procedure = 'EXEC prova_excel %s' % orderBrand.id_file
cursor.execute(procedure)
grid = cursor.fetchall()
但它返回一个错误:
Traceback (most recent call last):
File "C:\Program Files\eclipse indigo\plugins\org.python.pydev.debug_2.5.0.2012040618\pysrc\pydevd.py", line 1346, in <module>
debugger.run(setup['file'], None, None)
File "C:\Program Files\eclipse indigo\plugins\org.python.pydev.debug_2.5.0.2012040618\pysrc\pydevd.py", line 1060, in run
pydev_imports.execfile(file, globals, locals) #execute the script
File "C:\Users\rzuccotti\workspace\FIRST_ANDREA\interlem\dao\orderDao.py", line 3159, in <module>
print cursor.fetchall()
File "C:\Python27\lib\site-packages\django\db\utils.py", line 106, in inner
return func(*args, **kwargs)
File "C:\Python27\lib\site-packages\django\db\utils.py", line 99, in exit
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "C:\Python27\lib\site-packages\django\db\utils.py", line 106, in inner
return func(*args, **kwargs)
File "C:\Python27\lib\site-packages\sqlserver_ado\dbapi.py", line 688, in fetchall
return self._fetch()
File "C:\Python27\lib\site-packages\sqlserver_ado\dbapi.py", line 642, in _fetch
self._raiseCursorError(FetchFailedError, 'Attempting to fetch from a closed connection or empty record set')
File "C:\Python27\lib\site-packages\sqlserver_ado\dbapi.py", line 466, in _raiseCursorError
eh(self.connection, self, errorclass, errorvalue)
File "C:\Python27\lib\site-packages\sqlserver_ado\dbapi.py", line 91, in standardErrorHandler
raise errorclass(errorvalue)
django.db.utils.Error: Attempting to fetch from a closed connection or empty record set
你能帮我们吗?你知道吗
谢谢你。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐