Fórum Tipos #39490
16/10/2003
0
eu to colocando float e os numeros q eu to inserindo esta aparecendo assim:
se eu inseriro 1.5 aparece 1.5000000000111111
2-por q?
3-por exemplo se eu coloquei integer como q eu faço pra mudar pra float em sql?
eu tentei
alter table Produtos alter Column preco type float
e não funcionou....
4-como q eu faço para alterar o nome de uma coluna da tabela em sql por exemplo de preco para precos????
5-e para alter o nome de uma tabela?
agradeço desde já!
Heero
Curtir tópico
+ 0Posts
16/10/2003
Heero
Gostei + 0
16/10/2003
Mateus_henriques
sou iniciante não sei se posso te ajudar muito mais vai no site: www.delphibr.com.br na parte de apostilas, la tem uma apostilas com tudo que é tipo de comando sql pra interbase... explica tudo, eu recomendo, estou estudando por ele. :)
Gostei + 0
16/10/2003
Afarias
|eu to colocando float e os numeros q eu to inserindo esta aparecendo
NÃO USE FLOAT. Float é só para números *MUITO* grandes e nunca deve ser usado quando é necessário precisão.
defina seu tipo como NUMERIC .. ex:: NUMERIC(9,2)
|3-por exemplo se eu coloquei integer como q eu faço pra mudar pra
|float em sql? eu tentei alter table Produtos alter Column preco type float
|e não funcionou....
tenho certeza q funciona. qual o erro q vc recebeu??
mas, use numeric::
ALTER TABLE PRODUTOS ALTER PRECO TYPE NUMERIC(9,2)
|como q eu faço para alterar o nome de uma coluna da tabela em sql por
|exemplo de preco para precos????
dê uma lida no SQL HELP do INTERBASE -- veja o comando ALTER TABLE
alter table nome_tabela alter nome_coluna to novo_nome;
|5-e para alter o nome de uma tabela?
humm... acho q nào é possível.
T+
Gostei + 0
16/10/2003
Heero
Unsuccessful metadata update
Cannot change datatype for QUANTIDADE. Conversion from base type INTEGER to FLOAT is not supported
Statement: ALTER TABLE PRODUTOS ALTER quantidade TYPE float
eu to pensando em usar float pois estou interagindo com linguagem de programacao java, pois pra me receber esse valor acho q tinha q ser do tipo float, ou tem outra solucao? vai poder usar numeric mesmo? ou float?
e me explica melhor uma coisa o Double precision eh o doblo do float não eh?
obrigado pela ajuda foi de grande valia!!!
Gostei + 0
16/10/2003
Afarias
quando se usa NUMERIC o INTERBASE escolhe qual tipo será armazenado internamente de acordo com a precisão e escala fornecidos. Assim vc estará mais ´otimizado´
Mas... se quer usar FLOAT vá em frente... crie um novo campo FLOAT e migre seus values integer para lá.
T+
Gostei + 0
16/10/2003
Heero
o problema meu eh q eu não sei se o java aceita receber numeric numa variavel dele, vc sabe? pois ele não tem o tipo numeric. vc sabe como q eu faço pra receber um valor numeric? eu posso declarar no java float e receber um valor do interbase numeric?
essa duvida permaneceu
Gostei + 0
16/10/2003
Afarias
FLOAT no IB não é necessáriamente IGUAL ao FLOAT no Java... são coisas distintas.
qualquer valor como FLOAT, NUMERIC, DECIMAL ou outro, provavelmente poderá ser carregado no tipo Float do Java, blz?!
T+
Gostei + 0
17/10/2003
Heero
vou te mostrar minha tabela ateh fiz umas modificacoes nelas , vc dah uma ajuda pra mim pra ver se tah certo? eu quebrei a cabeca pra fazer ela e o maximo da laranja q eu consegui ispremer foi isso:
* = chave primária
^ = chave extrangeira
Produtos (*codigoproduto, nomeproduto, tipo, Preço, Quantidade, Preço de Custo)
Fornecedores (*Codigofornecedor, nomefornecedor, tipo, Endereço, Cidade, Telefone)
Itenspedidos (*codigoItempedido, ^Codigoproduto, Quantidade, Sub-Total)
A tabela a cima eu cadastro os produtos a serem pedidos pela empresa
No caso o código do produto acima pode ser soh estrangeira ou tem q ser primaria tbm?
Por q?
Pedidos (*codigopedido,^codigoItempedido, ^codigofornecedor, Data)
A tabela acima relaciona os pedidos pedidos aos seus fornecedores, pois vários pedidos podem ser feitos a um fornecedor.
No caso o códigoItemPedido e códigofornecedor pode ser soh estrangeira acima pode ser soh estrangeira ou tem q ser primaria tbm?
Por q?
Empregado(*codigoempregado, nomeempregado, endereço, Telefone, Identidade, cargo)
Clientes (*codigocliente, nomecliente, endereço, Telefone, Identidade)
ItensVendas (*CodigoVenda, ^codigoproduto, ^codigocliente, quantidade)
Mesmo tipo de pergunta feito acima
Vendas (*^codigoVenda,^codigoempregado,total,data)
Mesmo tipo de pergunta feito acima
Está certo?
Eu tenho que agrupar alguma chave tipo agrupar códigovenda com código do empregado? Pra q q serve agrupar? como q eu faço isso?
Gostei + 0
17/10/2003
Afarias
A relação entre PEDIDOS e ITENS_PEDIDOS é de 1 para N (1 pedido pode conter vários ítens) sendo assim, a chave estrangeira deve ficar em ITENS_PEDIDOS e não em PEDIDOS (^CodigoItemPedido) ... ex::
Pedidos (*CodigoPedido, ^CodigoFornecedor, Data)
ItensPedidos (*CodigoItemPedido, ^CodigoPedido, ^CodigoProduto, Quantidade, SubTotal)
bom, isso se vc terá um CodigoItemPedido independente (único) -- agora, algumas pessoas preferem ter códigos de ítens de pedido POR pedido (tipo: pedido 1, ítens 1, 2, 3 -- pedido 2, ítens 1, 2)
dessa forma ItensPedidos ficaria::
ItensPedidos (*^CodigoPedido, *CodigoItemPedido, ^CodigoProduto, Quantidade, SubTotal)
neste caso, CodigoPedido e CodigoItemPedido fazem parte da chave primária (composta) pois CodigoItemPedido se repete para Pedidos diferentes. -- E, é claro, CodigoPedido continua sendo chave estrangeira TAMBEM para manter a integridade da relação entre as entidades.
T+
Gostei + 0
17/10/2003
Heero
por exemplo se eu colocar duas primary key numa tabela elas jah ficam compostas? se não como q eu faço pra deixar elas compostas?
Gostei + 0
17/10/2003
Afarias
|primarias (ex: codVenda , codProduto) eu posso ter 1 2, 1 3, 1 4 , 2 2, 2
|3 (valores integer de cada chave) porem eu não posso ter 1 2, 1 2,
|certo?
Certo!
Mas não são 2 chaves primárias! é apenas 1 sendo q composta por 2 campos.
|por exemplo se eu colocar duas primary key numa tabela elas jah ficam
|compostas? se não como q eu faço pra deixar elas compostas?
vc somente pode ter 1 chave primária em uma tabela. entretanto, esta chave primária pode ser composta ou seja, pode ter 2 ou mais campos participando de sua formação.
T+
Gostei + 0
18/10/2003
Heero
olha soh então, se eu decrar 2 chaves primarias em uma tabela automaticamente elas vão ser compostas, eh isso? então elas se interagem pra formar uma soh, chamada de chave composta? uma não sobrevive sem a outra certo?
valeu!
Gostei + 0
18/10/2003
Afarias
|automaticamente elas vão ser compostas, eh isso? {...}
NÃO!!
como disse antes, vc só pode declarar 1 chave primária na tabela e PRONTO!!!
exemplo::
alter table nome_tabela add constraint pk_nome primary key (campo1);
ou, caso vc queira (ou precise de) uma chave composta::
alter table nome_tabela add constraint pk_nome primary key (campo1, campo2); // ou mais campos se desejar
se vc definiu uma chave de forma incorreta (ou, suas necessidades mudaram) e vc precisa redefinir a chave primária, vc tem q 1º destruir a que já existe e então criá-la novamente::
alter table nome_tabela drop constraint pk_nome;
alter table nome_tabela add constraint pk_nome primary key (campo3, campo4);
só uma dica:: evite a todo custo chaves primárias compostas -- acredito q vai te livrar de muitas dores de cabeça no futuro!!!
blz?!?! T+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)