Página 2 de 2
dbusearea() X copy to
Enviado: 20 Out 2014 08:52
por Jairo Maia
Inácio,
Além da observação do Itamar, você tem certeza que o comando Copy To está sendo executado? Ou seja, estas condicionais estão sendo atendidas?
Código: Selecionar todos
if "URGSQL"$procname(1) .or. "URGSQL"$procname(2) .or. "URGSQL"$procname(3) .or. "URGSQL"$procname(4)
e
if conexsql()
dbusearea() X copy to
Enviado: 20 Out 2014 11:08
por cjp
Testei com copy to (arqsp) via "DBFNTX", mas também não funcionou.
Com certeza entra no if, já testei especificamente.
dbusearea() X copy to
Enviado: 20 Out 2014 11:58
por Itamar M. Lins Jr.
Quais são os tipos, tamanhos etc... está tudo compatível com DBF ?
Os dados tem algum campo "NIL" ? etc...
Saudações,
Itamar M. Lins Jr.
dbusearea() X copy to
Enviado: 20 Out 2014 12:15
por Jairo Maia
Apenas acrescentando: Então, para saber se é alguma incompatibilidade com a estrutura do dbf, coloque ACIMA de: copy to (arqsp) via "DBFNTX", o comando Copy To (arqsp) DELIMITED. Istoirá criar também um arquivo .Txt com os dados. Se o .Txt com os dados for criado e o .Dbf não, então remova seus controles de erros porque está havendo erro e não sendo exibido.
PS: coloque o comando indicado acima do existente. Porque se há erro na seu comando, o que irá gerar o .Txt não será executado.
dbusearea() X copy to
Enviado: 20 Out 2014 12:36
por cjp
A estrutura da tabela TAREFAS no banco de dados é a seguinte:
Código: Selecionar todos
"USUARIO char(1),"+;
"NRTAREFA char(10),"+;
"DTEXIBE date,"+;
"HREXIBE char(8),"+;
"DTMAXIMA date,"+;
"PRIORIDADE int,"+;
"INCLUIDOR char(15),"+;
"SOLUC char(1),"+;
"EXIBE char(1),"+;
"VINCULO char(20),"+;
"TEMPOESTIM decimal(7,1),"+;
"TEMPOUSADO decimal(7,1),"+;
"TEMPOCOMPU decimal(7,1),"+;
"CAMPO char(1),"+;
"ASSUNTO char(30),"+;
"DATA date,"+;
"HORA char(8),"+;
"TAREFA mediumtext)"
Mas o select está selecionando apenas os campos prioridade, assunto, tarefa, exibe e soluc.
Já conferi que não tem campos com NIL.
Será que o fato de o campo TAREFA estar como MEDIUMTEXT seria a causa? É incompatível com DBF?
dbusearea() X copy to
Enviado: 20 Out 2014 12:40
por cjp
Deu erro com o DELIMITED. Veja:
Código: Selecionar todos
Application Internal Error - C:\tarefas\TAREFAS.EXE
Terminated at: 2014-10-20 12:38:50
Erro irrecuper vel 6005: Exception error:
Exception Code:C0000005
Exception Address:0054E46D
EAX:20202020 EBX:01A0AF0C ECX:00000000 EDX:00000004
ESI:01A1B720 EDI:01A19EEC EBP:00000002
CS:EIP:001B:0054E46D SS:ESP:0023:0022F5B0
DS:0023 ES:0023 FS:003B GS:0000
Flags:00010202
CS:EIP: FF 50 58 85 C0 74 BF 89 C3 8B 44 24 1C 89 04 24
SS:ESP: 01A19EEC 00000004 01A0AF0C 0041D6E7 01A19EEC 00000001 01A0AD54 01A0AF0C 0022F678 00000000 00000000 0041D780 01A19EEC 00000001 00000002 01A19EEC
C stack:
EIP: EBP: Frame: OldEBP, RetAddr, Params...
Modules:
0x00400000 0x002E7000 C:\tarefas\TAREFAS.EXE
0x76EB0000 0x0013C000 C:\Windows\SYSTEM32\ntdll.dll
0x75310000 0x000D4000 C:\Windows\system32\kernel32.dll
0x751D0000 0x0004B000 C:\Windows\system32\KERNELBASE.dll
0x75620000 0x000A0000 C:\Windows\system32\ADVAPI32.DLL
0x76840000 0x000AC000 C:\Windows\system32\msvcrt.dll
0x756C0000 0x00019000 C:\Windows\SYSTEM32\sechost.dll
0x76730000 0x000A2000 C:\Windows\system32\RPCRT4.dll
0x75220000 0x0004E000 C:\Windows\system32\GDI32.dll
0x76330000 0x000C9000 C:\Windows\system32\USER32.dll
0x77010000 0x0000A000 C:\Windows\system32\LPK.dll
0x75270000 0x0009D000 C:\Windows\system32\USP10.dll
0x72340000 0x0001C000 C:\Windows\system32\IPHLPAPI.DLL
0x77000000 0x00006000 C:\Windows\system32\NSI.dll
0x72330000 0x00007000 C:\Windows\system32\WINNSI.DLL
0x6AFB0000 0x0008C000 C:\Windows\system32\ODBC32.dll
0x768F0000 0x0015C000 C:\Windows\system32\OLE32.dll
0x75590000 0x0008F000 C:\Windows\system32\OLEAUT32.DLL
0x707C0000 0x00051000 C:\Windows\system32\WINSPOOL.DRV
0x77080000 0x00035000 C:\Windows\system32\WS2_32.dll
0x770C0000 0x0001F000 C:\Windows\system32\IMM32.DLL
0x765D0000 0x000CC000 C:\Windows\system32\MSCTF.dll
0x6ADC0000 0x00038000 C:\Windows\system32\odbcint.dll
0x74DC0000 0x0004C000 C:\Windows\system32\apphelp.dll
0x74A40000 0x00017000 C:\Windows\system32\bcrypt.dll
0x745E0000 0x0003D000 C:\Windows\system32\bcryptprimitives.dll
0x644C0000 0x0046A000 C:\Program Files\MySQL\Connector ODBC 3.51\myodbc3.dll
0x74D60000 0x00008000 C:\Windows\system32\Secur32.dll
0x74DA0000 0x0001B000 C:\Windows\system32\SSPICLI.DLL
0x6F640000 0x00007000 C:\Windows\system32\WSOCK32.dll
0x71C70000 0x00010000 C:\Windows\system32\NLAapi.dll
0x6C020000 0x00010000 C:\Windows\system32\napinsp.dll
0x6C000000 0x00012000 C:\Windows\system32\pnrpnsp.dll
0x748F0000 0x0003C000 C:\Windows\System32\mswsock.dll
0x747B0000 0x00044000 C:\Windows\system32\DNSAPI.dll
0x6BFF0000 0x00008000 C:\Windows\System32\winrnr.dll
0x6BFC0000 0x00021000 C:\Program Files\Bonjour\mdnsNSP.dll
0x6A950000 0x00006000 C:\Windows\system32\rasadhlp.dll
0x731E0000 0x00005000 C:\Windows\System32\wshtcpip.dll
0x748E0000 0x00006000 C:\Windows\System32\wship6.dll
0x719E0000 0x00038000 C:\Windows\System32\fwpuclnt.dll
Called from __DBCOPY(0)
Called from __DBDELIM(0) in ../../../dbdelim.prg
Called from FTECENTER(9192) in COMUNS.PRG
Called from RESPONDE(9137) in COMUNS.PRG
Called from CALLUSER(0) in ../../../dbedit.prg
Called from DBEDIT(0) in ../../../dbedit.prg
Called from URGSQL(27879) in COMUNS.PRG
Called from CONSULTA(8085) in COMUNS.PRG
Called from TAREFAS(569) in TAREFAS.PRG
Called from MAIN(26) in TAREFAS.PRG
------------------------------------------------------------------------
dbusearea() X copy to
Enviado: 20 Out 2014 13:08
por Itamar M. Lins Jr.
Ainda tem dúvida ? Qual é o DBF que aceita 16,777,215(16Mib) no field CARACTER ?
Código: Selecionar todos
Type | Maximum length
-----------+-------------------------------------
TINYTEXT | 255 (2 8−1) bytes
TEXT | 65,535 (216−1) bytes = 64 KiB
MEDIUMTEXT | 16,777,215 (224−1) bytes = 16 MiB
LONGTEXT | 4,294,967,295 (232−1) bytes = 4 GiB
Tem que fazer o dever de casa certinho...
Saudações,
Itamar M. Lins Jr.
dbusearea() X copy to
Enviado: 20 Out 2014 13:43
por cjp
É que eu imaginei que ele poderia eventualmente transformar o campo MEDIUMTEXT num campo caractere comum, ainda que perdendo parte dos dados.
De que outra forma posso resolver isso? A única coisa que me ocorre agora é copiar os campos um a um numa variável e da variável para o DBF, transformando para caractere. Sei que isso não é uma solução muito inteligente, e certamente vai ficar meio lento. Alguém tem alguma sugestão melhor?
dbusearea() X copy to
Enviado: 20 Out 2014 14:00
por Itamar M. Lins Jr.
Ué, e vc precisa desse campo enorme ?
Esses enormes campos tem que saber usar com moderação...
Se vc acreditava que o SQLMIX iria truncar p/ 255 Caracteres porque não faz a modificação ?
Em milhares de registros seria, 16Mibs x 10000 = Muito espaço alocado sem uso... tá certo isso ai, produção ?
Saudações,
Itamar M. Lins Jr.
dbusearea() X copy to
Enviado: 20 Out 2014 19:22
por cjp
De fato era muito espaço desnecessário. Mudei o campo para TEXT, que dá até 65.000 caracteres, o que é suficiente.
Mas o problema permanece: não está copiando. Será que nem nesse tamanho o DBF não suporta?