Olá a todos, Estou desenvolvendo um script para pegar um arquivo, conectar ao postgresql e e fazer um copy to ou um copy from em uma tabela , pois no Zope o ZPsycopgDA não suporta COPY TO(suportar suporta, mas tem que passar o caminho absoluto do arquivo no sistema de arquivos...).
Assim criei um script para conectar ao postgre com o psycopg e inserir arquivos csv nas tabelas ou pegá-las tabela usando External Method. Aqui vai o código que eu fiz: ------------------------------------------------------------------------------------------------------------------------------------ import tempfile, psycopg def copy_from2Zope(table, connection_string): db=psycopg.connect(connection_string) arqtmp=tempfile.NamedTemporaryFile() cur=db.cursor() cur.copy_to(arqtmp, table, ',', '') arqtmp.seek(0) s='' for line in arqtmp: s=s+line arqtmp.close() cur.close() db.close() return (table+'.tbl',s) def getZipFile(lista): import zipfile arq=tempfile.NamedTemporaryFile() zip=zipfile.ZipFile(arq,"w") for f in lista: zip.writestr(f[0],f[1]) zip.close() arq.seek(0) z='' for line in arq: z=z+line arq.close() return z def TBL2CSV(tbl): tbl=tbl.split("\n") del tbl[0] return '\n'.join(tbl) def copy_to2Zope(table,connection_string,tbl): db=psycopg.connect(connection_string) arqtmp=tempfile.NamedTemporaryFile(mode='r+w') csv=TBL2CSV(tbl) arqtmp.write(csv) cur=db.cursor() arqtmp.seek(0) cur.copy_from(arqtmp,table,',','') cur.close() db.close() arqtmp.close() ------------------------------------------------------------------------------------------------------------------------------------ Tanto o COPY TO como o COPY FROM do cursor funcionaram.o COPY FROM funciona perfeitamente.O COPY TO também está funcionando, inclusive apresenta erros quando há duplicidade nas chaves primárias mas não está inserindo na tabela. Aparentemente tudo normal, mas as informações não são inseridas na tabela. Com um mesmo arquivo que tentei usar com o script, eu usei com o cliente psql e dei uma instrução sql COPY TO com o mesmo arquivo e funcionou! Estou usando psycopg 2.0b3 e Zope 2.7.4-0, python 2.4.0, Mandrakelinux 10.2 . Desculpe se estou sendo meio off-topic, mas já não sei aonde é o problema. Peço a ajuda de vocês.Qualquer ajuda ou sugestão ou idéia,etc. é benvinda(é assim que se escreve?). -- ----------------------------------- Diego Manhães Pinheiro Linux User #375020 Para enviar uma mensagem: zope-pt@yahoogrupos.com.br Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/zope-pt/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html