SINTAXE PARA CRIAR DBF COM CAMPO NUMERICO
Boa tarde pessoal,
Seguinte estou tentando criar um arquivo DBF atraves do seguinte código:
Porém ao executar o código ocorre erro de sintaxa, eu só consigo criar o arquivo quando coloco o tipo da variavel igual a INTEGER e eu gostaria de cria-lo como NUMERIC (6,0). Estou usando o Driver do dBASE e a versão do ADODB é a 6.0 (Microsoft ActiveX Data Objects 6.0 Library).
Alguem sabe me informar qual a sintaxe correta para que eu possa criar o DBF com campos numéricos ou até mesmo outro método (Lembrando que eu tenho que usar o Driver do dBASE, não posso utilizar o Driver JET) ?
Seguinte estou tentando criar um arquivo DBF atraves do seguinte código:
string _StrConnection = [Ô]Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=C:\\)[Ô];
ADODB.ConnectionClass conDatabase = new ADODB.ConnectionClass();
try
{
object objAffected;
string strStatement = [Ô]CREATE TABLE TESTE_DBF (ID numeric(6))[Ô];
string strConnection = _StrConnection;
conDatabase.Open(strConnection, [Ô][Ô], [Ô][Ô], 0);
conDatabase.Execute(strStatement, out objAffected, 0);
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception ex)
{
Dts.TaskResult = (int)ScriptResults.Failure;
throw (ex);
}
finally
{
conDatabase.Close();
}
Porém ao executar o código ocorre erro de sintaxa, eu só consigo criar o arquivo quando coloco o tipo da variavel igual a INTEGER e eu gostaria de cria-lo como NUMERIC (6,0). Estou usando o Driver do dBASE e a versão do ADODB é a 6.0 (Microsoft ActiveX Data Objects 6.0 Library).
Alguem sabe me informar qual a sintaxe correta para que eu possa criar o DBF com campos numéricos ou até mesmo outro método (Lembrando que eu tenho que usar o Driver do dBASE, não posso utilizar o Driver JET) ?
Crie como LONG...
KERPLUNK,
Tenho que usar o Driver do dBASE e por esse motivo quando coloco Long ou Integer ele converte para Numeric(20,5) e eu tenho que colocar como Numeric(6) por exemplo.
Tenho que usar o Driver do dBASE e por esse motivo quando coloco Long ou Integer ele converte para Numeric(20,5) e eu tenho que colocar como Numeric(6) por exemplo.
Você vai ter que usar a sintaxe do dBase então. Crie como numeric 6,0 isso significa que o campo terá 6 números e nenhuma casa decimal. Mais aqui
Ja tentei isso tambem e ocorre o seguinte erro:
System.Runtime.InteropServices.COMException
[Ô][Microsoft][Driver ODBC para dBase] Erro de sintaxe na instrução CREATE TABLE[Ô]
System.Runtime.InteropServices.COMException
[Ô][Microsoft][Driver ODBC para dBase] Erro de sintaxe na instrução CREATE TABLE[Ô]
Verifique a tabela de tipos do dBase
Tentei de todos os modos: Numeric, float, money e nao de certo. O engraçado ou nem tanto e que quando eu coloco por ex: numeric(7,0) ou float(7,0) da erro de sintaxe, mas se eu colocar somente o campo e o tipo sem especificar o tamanho, dai cria normalmente, ex:
CREATE TABLE TESTE (ID NUMERIC)
Quando eu abro o dbf o campo esta com valor (Numeric(20,5)), isso tanto para numeric, float ou money.
Alguma sugestão?
CREATE TABLE TESTE (ID NUMERIC)
Quando eu abro o dbf o campo esta com valor (Numeric(20,5)), isso tanto para numeric, float ou money.
Alguma sugestão?
Tópico encerrado , respostas não são mais permitidas