Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rd111072

[Resolvido] Erro ao criar tabela via código

Recommended Posts

Bom dia, moçada!

 

Estou tentando criar uma tabela via comando sql no banco SQL. Mas está dando o seguinte erro:

 

Microsoft OLE DB Provider for ODBC Drivers erro '80040e14'

 

[Microsoft][ODBC SQL Server Driver]

Line 1: Incorrect syntax near '3042009101820'. 

 

/sis-vendedor/COM_calculoSalvar.asp, line 93

 

 

3042009101820 seria o nome dinâmico da tabela, que estou tentando criar através deste código:

 

<%
SQLT = "CREATE TABLE '"&num_pedido&"' (itens varchar(50), codigo varchar (50), valoru varchar (50), Primary Key(itens) )"
					set recordGravacao = conexaoDB.execute(SQLT)
					Response.Write(SQLT)
%>

Alguém sabe???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Informa o nome da tabela sem as aspas simples "&num_pedido&" . Posta o resultado.

 

Qual banco de dados está utilizando? Pq está criando essas tabelas dinâmicas? Dependendo da quantidade de acesso, você vai prejudicar a performance do banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim:

 

SQLT = "CREATE TABLE `"&num_pedido&"` (`itens` INT (3) NOT NULL AUTO_INCREMENT, `codigo` varchar (50), `valoru` varchar (50), PRIMARY KEY(`itens`));"
set recordGravacao = conexaoDB.execute(SQLT)

exatamente como estar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim:

 

SQLT = "CREATE TABLE `"&num_pedido&"` (`itens` INT (3) NOT NULL AUTO_INCREMENT, `codigo` varchar (50), `valoru` varchar (50), PRIMARY KEY(`itens`));"
set recordGravacao = conexaoDB.execute(SQLT)

exatamente como estar!

Deu o mesmo erro Ted.

 

Agora, se coloco:

 

SQLT = "CREATE TABLE teste (itens varchar(50), codigo varchar (50), valoru varchar (50), Primary Key(itens) )"

set recordGravacao = conexaoDB.execute(SQLT)

Response.Write(SQLT)

 

Funciona. Mas preciso que o nome seja dinâmico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Informa o nome da tabela sem as aspas simples "&num_pedido&" . Posta o resultado.

 

Qual banco de dados está utilizando? Pq está criando essas tabelas dinâmicas? Dependendo da quantidade de acesso, você vai prejudicar a performance do banco.

Dá o mesmo que com as aspas simples.

 

Obs.:Só duas pessoas vão acessar esse sistema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você testou sem aspas simples conforme falei?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é isso não, Ted.

Pois criei uma variavel assim:

 

variavel = "testando"

 

Deu esse erro:

 

Microsoft OLE DB Provider for ODBC Drivers erro '80040e14'

 

[Microsoft][ODBC SQL Server Driver]

Line 1: Incorrect syntax near 'testando'. 

 

/sis-vendedor/COM_calculoSalvar.asp, line 94

Compartilhar este post


Link para o post
Compartilhar em outros sites

escreve o resultado disso para ver o que pode estar causando o erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

O response do SQL, caso desse certo seria:

CREATE TABLE variavel (itens varchar(50), codigo varchar (50), valoru varchar (50), Primary Key(itens) )

 

e criaria a table conforme especificado. O problema é quando coloco '"&variavel&"' ali no meio do comando sql.

 

Respondi à pergunta do Mário?

Compartilhar este post


Link para o post
Compartilhar em outros sites

caso desse certo nao

 

faça o response antes de executar e mostre o que esta de fato sendo executado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom fiz assim:

<%
SQLT = "CREATE TABLE '"&variavel&"' (itens varchar(50), codigo varchar (50), valoru varchar (50), Primary Key(itens) )"
Response.Write(SQLT)
set recordGravacao = conexaoDB.execute(SQLT)				
%>

E deu isso:

CREATE TABLE 'testando' (itens varchar(50), codigo varchar (50), valoru varchar (50), Primary Key(itens) )

Microsoft OLE DB Provider for ODBC Drivers erro '80040e14'

 

[Microsoft][ODBC SQL Server Driver]

Line 1: Incorrect syntax near 'testando'. 

 

/sis-vendedor/COM_calculoSalvar.asp, line 95

Compartilhar este post


Link para o post
Compartilhar em outros sites

testou sem as aspas tambem? da o mesmo erro?

 

teste e poste aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei assim:

SQLT = "CREATE TABLE &variavel& (itens varchar(50), codigo varchar (50), valoru varchar (50), Primary Key(itens) )"

 

Dá o erro:

Microsoft OLE DB Provider for ODBC Drivers erro '80040e14'

 

[Microsoft][ODBC SQL Server Driver]

Line 1: Incorrect syntax near '&'. 

 

/sis-vendedor/COM_calculoSalvar.asp, line 95

 

Só com as aspas duplas já testei e só com as simples também...

 

Não é possível criar uma tabela com nome dinâmico?

Compartilhar este post


Link para o post
Compartilhar em outros sites

SQLT = "CREATE TABLE '"&num_pedido&"' (itens varchar(50), codigo varchar (50), valoru varchar (50), Primary Key(itens) )"

Response.Write(SQLT)

Response.End

Posta o resultado disso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!

Não deu erro, mas também não criou a tabela.

 

O response foi esse:

 

CREATE TABLE '3042009122923' (itens varchar(50), codigo varchar (50), valoru varchar (50), Primary Key(itens) )

 

Acho que estamos próximos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

SQLT = "CREATE TABLE '"&num_pedido&"' (itens varchar(50), codigo varchar (50), valoru varchar (50), Primary Key(itens));"
conexaoDB.execute(SQLT)

Se der erro, tenta assim:

SQLT = "CREATE TABLE "&num_pedido&" (itens varchar(50), codigo varchar (50), valoru varchar (50), Primary Key(itens));"
conexaoDB.execute(SQLT)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dois dois jeitos dá o mesmíssimo erro:

 

Microsoft OLE DB Provider for ODBC Drivers erro '80040e14'

 

[Microsoft][ODBC SQL Server Driver]

Line 1: Incorrect syntax near '3042009122923'. 

 

/sis-vendedor/COM_calculoSalvar.asp, line 96

 

MAs acho que do segundo jeito está mais certo porque o sql sai assim:

CREATE TABLE 3042009122923 (itens varchar(50), codigo varchar (50), valoru varchar (50), Primary Key(itens) )

 

Enquanto que no primeiro o número 3042009122923 fica entre aspas simples ('3042009122923').

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom galera, parece que consegui.

Usei uma variavel com valor "testando222" e uma formatação diferente no comando sql:

SQLT = SQLT & "CREATE TABLE "&variavel&" " & vbCrLf

SQLT = SQLT & "(" & vbCrLf

SQLT = SQLT & "itens varchar (30) NULL, " & vbCrLf

SQLT = SQLT & "codigo varchar (30) NULL, " & vbCrLf

SQLT = SQLT & ")" & vbCrLf

 

e criou a tabela testando222 no banco SQL!

 

Parece que o Ted tinha razão, em parte... B)

 

Obrigado a todos. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.