I was thinking that the driver could be the issue.
The code is this one but dont expect you to read it.
Just in case you want to read this code...
The data i query is distributed among some tables. The problem is that the
records in the table RESULTS are not just a line record, but many records
that together compose a record
Example
instead of having this record
ID Field1 Field2 Field3 Field3 y have
1 aaa bbb ccc ddd
ID FieldName, value
1 field1 aaa
1 field2 bbb
1 field3 ccc
# -*- coding: latin-1 -*-
##calculo da média de D90
## for x in docs:
## temp=float(x['DTG_SECA__D90']) if x['DTG_SECA__D90']!="" else 0
## list.append(temp)
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
import datetime as dt
import win32com.client
import datetime
import sys
import pickle
conn = win32com.client.Dispatch(r'ADODB.Connection')
rs = win32com.client.Dispatch('ADODB.Recordset')
docs=[]
doc={}
def substitui(valor):
a=valor
return a.replace('
','').replace('-','_').replace('*','x').replace('(','').replace(')','').replace('>','')
def
Output(Analises,Unidades,templateKey,productKey,secagemKey,startDate,endDate,Coluna,sortedList):
samples={}
if secagemKey!='*':
secKey=" and SAMPLE.SAMPLING_POINT LIKE '"+secagemKey+"'"
else:
secKey=''
DSN="Provider=sqloledb;Data Source=192.168.1.14,1433;Initial
Catalog='limslab';User Id='xxx';Password='xxx';"
conn.Open(DSN)
rs_name="SELECT distinct
SAMPLE.SAMPLE_NUMBER,SAMPLE.TEMPLATE,SAMPLE.ID_PARTIDA,SAMPLE.X_LOTE,SAMPLE.X_PALETE,SAMPLE.STATUS,SAMPLE.SAMPLING_POINT,SAMPLE.PRODUCT,SAMPLE.SAMPLED_DATE,SAMPLE.X_HORA,SAMPLE.X_SILO,SAMPLE.X_PILOTO,SAMPLE.X_RECEITA,SAMPLE.X_OBSERV,SAMPLE.CUSTOMER
FROM SAMPLE where "+templateKey + secKey + " and SAMPLE.SAMPLED_DATE >=
'"+startDate+"' AND SAMPLE.SAMPLED_DATE <= '"+endDate+"' and SAMPLE.PRODUCT
like '"+productKey+"' and SAMPLE.STATUS<>'X' order by
SAMPLE.SAMPLED_DATE,SAMPLE.X_HORA";
statusKey={'I':'Incompleta','C':'Completa','U':'Não
recebida','X':'Cancelada','P':'Em progresso','A':'Autorizada'}
rs.Open( rs_name , conn)
cont=3
while 1:
if rs.EOF:
break
else:
sample={}
print checkNone(rs.Fields(0).Value)
sample_number=checkNone(rs.Fields(0).Value)
sample['Template']=checkNone(rs.Fields(1).Value)
sample['ID_PARTIDA']=checkNone(rs.Fields(2).Value)
sample['X_LOTE']=checkNone(rs.Fields(3).Value)
sample['X_PALETE']=checkNone(rs.Fields(4).Value)
sample['Status']=statusKey[rs.Fields(5).Value]
sample['Sampling Point']=checkNone(rs.Fields(6).Value)
sample['Product']=checkNone(rs.Fields(7).Value)
tempdate=str(rs.Fields(8).Value)[:8]
sample['Sampled
Date']="20"+tempdate[6:8]+"-"+tempdate[3:5]+"-"+tempdate[:2]
sample['Hora']=str(rs.Fields(9).Value)
sample['Silo']=checkNone(rs.Fields(10).Value)
sample['X_PILOTO']=checkNone(rs.Fields(11).Value)
sample['X_RECEITA']=checkNone(rs.Fields(12).Value)
sample['X_OBSERV']=checkNone(rs.Fields(13).Value)
sample['CUSTOMER']=checkNone(rs.Fields(14).Value)
samples[sample_number]=sample
rs.MoveNext()
conn.Close()
samplesSorted=samples.keys()
samplesSorted.sort()
for x in samplesSorted:
doc={}
hasrecord=0
Analysis=Analises
conn.Open(DSN)
rs_name="SELECT TEST.ANALYSIS, RESULT.NAME,RESULT.FORMATTED_ENTRY,
RESULT.IN_SPEC FROM SAMPLE,RESULT,TEST WHERE SAMPLE.SAMPLE_NUMBER =
TEST.SAMPLE_NUMBER AND TEST.TEST_NUMBER = RESULT.TEST_NUMBER and
RESULT.SAMPLE_NUMBER="+str(x) +" and RESULT.STATUS<>'X'"
rs.Open( rs_name , conn)
for xx in Analysis:
for yy in Analysis[xx]['subcolunas']:
Analysis[xx]['subcolunas'][yy]=''
while 1:
if rs.EOF:
break
else:
hasrecord=1
analise=checkNone(rs.Fields(0).Value)
if analise in Analises:
if Coluna in Analises[analise]['imprime']:
#Analysis['LOTE']['subcolunas']['LOTE']=getLote(str(x))[0]
Analysis['Sample N']['subcolunas']['Sample N']=x
Analysis['ID_PARTIDA']['subcolunas']['ID_PARTIDA']=samples[x]['ID_PARTIDA']
Analysis['X_LOTE']['subcolunas']['X_LOTE']=samples[x]['X_LOTE']
Analysis['X_PALETE']['subcolunas']['X_PALETE']=samples[x]['X_PALETE']
Analysis['Status']['subcolunas']['Status']=samples[x]['Status']
Analysis['Sampling Point']['subcolunas']['Sampling
Point']=samples[x]['Sampling Point']
Analysis['Product']['subcolunas']['Product']=samples[x]['Product']
Analysis['Sampled Date']['subcolunas']['Sampled
Date']=samples[x]['Sampled Date']
Analysis['Hora']['subcolunas']['Hora']=samples[x]['Hora']
Analysis['Silo']['subcolunas']['Silo']=samples[x]['Silo']
Analysis['X_PILOTO']['subcolunas']['X_PILOTO']=samples[x]['X_PILOTO']
Analysis['X_RECEITA']['subcolunas']['X_RECEITA']=samples[x]['X_RECEITA']
Analysis['X_OBSERV']['subcolunas']['X_OBSERV']=samples[x]['X_OBSERV']
Analysis['CUSTOMER']['subcolunas']['CUSTOMER']=samples[x]['CUSTOMER']
if rs.Fields(1).Value in
Analises[analise]['subcolunas'].keys():
#print "encontrado ",
analise,"|"+rs.Fields(1).Value+"|",checkNone(rs.Fields(2).Value)
if checkNone(rs.Fields(3).Value)=='F':
Analysis[analise]['subcolunas'][rs.Fields(1).Value]='/F'+str(checkNone(rs.Fields(2).Value))
else:
Analysis[analise]['subcolunas'][rs.Fields(1).Value]=checkNone(rs.Fields(2).Value)
rs.MoveNext()
conn.Close()
if hasrecord==1:
for y in sortedList:
if Coluna in Analises[y]['imprime']:
#len2=len(Analises[y]['subcolunas'])
for z in Analises[y]['subcolunas']:
doc[substitui(y)+"__"+substitui(z)]=Analysis[y]['subcolunas'][z]
docs.append(doc)
hasrecord=0
def checkNone(valor):
if valor==None:
return ''
else:
return valor
if __name__ == "__main__":
file = open("c:\\Analises.pck", "r")
Analises = pickle.load(file)
file.close()
file = open("c:\\Unidades.pck", "r") # read mode
Unidades= pickle.load(file)
file.close()
file = open("c:\\Templates.pck", "r") # read mode
Templates = pickle.load(file)
file.close()
sorted=Analises
template='SECAGEM'
templateKey="((SAMPLE.TEMPLATE like 'SEC%') or (SAMPLE.TEMPLATE like
'FD%'))"
productKey='S1000S'
startDate='2012-08-01'
endDate='2012-08-31'
secagemKey='*'
Coluna ='B'
moveTo = None
Output(Analises,Unidades,templateKey,productKey,secagemKey,startDate,endDate,Coluna,sorted)
xaxis=[]
yaxis=[]
keys=docs[0].keys()
for x in docs:
data=x['SampledDate__SampledDate'][:4]+'-'+x['SampledDate__SampledDate'][8:]+'-'+x['SampledDate__SampledDate'][5:7]
hora=x['Hora__Hora']
if x['DTG_SECA__D50']!="":
yaxis.append(float(x['DTG_SECA__D50']) )
#graphdata=datetime.datetime(int(data[:4]),int(data[5:7]),int(data[8:]),int(hora[:2]),int(hora[4:5]),int(hora[7:]))
print data + " "+hora, datetime.datetime.strptime(data+"
"+hora,"%Y-%m-%d %H:%M:%S")
xaxis.append(datetime.datetime.strptime(data+" "+hora,"%Y-%m-%d
%H:%M:%S"))
#yaxis.append(1)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot_date(xaxis, yaxis, 'ro',label='D5')
#ax.yaxis_date()
fig.autofmt_xdate()
plt.grid(True)
plt.title('teste1')
plt.show()
2013/7/17 Massimo Di Pierro <[email protected]>
> What's the code? Anyway, web2py is expected to be slower then PHP. 4x
> seems a lot and perhaps optimizations are possible.
>
>
> On Wednesday, 17 July 2013 03:39:46 UTC-5, Ramos wrote:
>>
>> Hello, i have a script in php to read data from an sqlserver.
>> This script is running for the last 5 years in a pentium 4 computer.
>>
>> I converted this script using the same logic to python
>> in python i use SQLOLEDB.
>>
>> Running this code in python is 4 times slower in my intel core 3 than the
>> php one.
>>
>> Is this normal?
>>
>> Thank you
>>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "web2py-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>
--
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.