brunu125 Posted September 15, 2009 at 10:10 PM Report Share #287219 Posted September 15, 2009 at 10:10 PM boas pessoal sou um novato aqui no forum por isso peço desculpa se estiver a perguntar isto no local errado é o seguinte: estou a criar um programinha simples e num dos botoes tem o codigo de criar uma nova tabela na bd. o nome desta nova tabela é dado pelo utilizador e fica guardado numa variavel para poder variar conforme a escolha do utilizador a minha duvida é como fazer para dar o name á tabela apartir de uma variavel acho que me expliquei bem agradeço desde ja uma ajuda bpinto Link to comment Share on other sites More sharing options...
bruno1234 Posted September 15, 2009 at 10:33 PM Report Share #287221 Posted September 15, 2009 at 10:33 PM A menos q estejas a fazer uma ferramenta para gerir e criar modelos de dados, não deves dar deixar o utilizador interferir com o modelo de dados criando tabelas. O utilizador pode ser responsável pelo conteudo das tabelas, mas n pela sua implementação. Caso o objectivo seja mm a ferramenta de gestão dos modelos de dados, então deves criar scripts em sql através dos dados do utilizador q posteriormente serão executados, não esquecendo as validações necessárias. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
jpaulino Posted September 15, 2009 at 10:37 PM Report Share #287222 Posted September 15, 2009 at 10:37 PM sou um novato aqui no forum por isso peço desculpa se estiver a perguntar isto no local errado O sitio correcto é em dúvidas e ajudas, mas já movi, mas podes deixar de usar k's, isto não é um telemóvel. Podes mostrar o código que cria a base de dados ? Link to comment Share on other sites More sharing options...
brunu125 Posted September 15, 2009 at 11:41 PM Author Report Share #287242 Posted September 15, 2009 at 11:41 PM desculpa os k's, a intensão é a seguinte: o programa gere fornecedores, ou seja sao inseridos os dados dos fornecedores numa tabela (dados_forn) e ao fazer isto quero que o programa crie uma tabela com o numero do fornecedor (gerado sequencialmente pelo programa), na pratica o utilizador nao interfere, o numero do fornecedor seria guardado numa variavel para que posa ser atribuido como nome da tabela o código é este: Dim nome As String nome = CStr(numero) Const constr As String = "Data Source=.\SQLEXPRESS;AttachDbFilename='C:\Ecorritel\Gestor\gestor\gestor\g_f.mdf';Integrated Security=True;Connect Timeout=30;User Instance=True" Dim db As New SqlConnection(constr) db.Open() Dim varsql As String varsql = "CREATE TABLE teste (ola varchar(10))" Dim cmd As New SqlCommand(varsql, db) cmd.ExecuteScalar() db.Close() o que queria fazer era em vez de teste (que seria o nome da tabela) colocar la a variavel para que o nome possa modar consuante o numero do fornecedor é possivel dar uma ajuda? xD cumps bpinto Link to comment Share on other sites More sharing options...
jpaulino Posted September 16, 2009 at 06:47 AM Report Share #287246 Posted September 16, 2009 at 06:47 AM Ok, mas para isso só necessitas de fazer (por exemplo com base numa textbox): varsql = "CREATE TABLE " & Me.TextBox1.Text & " (ola varchar(10))" Link to comment Share on other sites More sharing options...
lufinima Posted September 16, 2009 at 09:03 AM Report Share #287260 Posted September 16, 2009 at 09:03 AM o programa gere fornecedores, ou seja sao inseridos os dados dos fornecedores numa tabela (dados_forn) e ao fazer isto quero que o programa crie uma tabela com o numero do fornecedor (gerado sequencialmente pelo programa), na pratica o utilizador nao interfere, o numero do fornecedor seria guardado numa variavel para que posa ser atribuido como nome da tabela Já agora não estarás a complicar um pouco as coisas criar uma tabela para cada fornecedor? Se tiveres 5000 fornecedores vais criar 5000 tabelas com os mesmos tipos de dados em vez de 1 tabela com 5000 registos? Não será melhor criares uma tabela de fornecedores com os dados de cada fornecedor? Link to comment Share on other sites More sharing options...
ribeiro55 Posted September 16, 2009 at 06:52 PM Report Share #287332 Posted September 16, 2009 at 06:52 PM Não é a melhor forma de resolver uma situação dessas, e já te foram dadas sugestões para melhorar. O jpaulino deu-te inclusive a resolução para a dúvida primária. No entanto, fica para referência, que podes alterar nomes de tabelas via SQL: ALTER TABLE Utilizadores RENAME TO Pessoal_que_utiliza EDIT: Não sei porque fiquei com a sensação de que a dúvida consistia em alterar o nome da tabela Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
bruno1234 Posted September 16, 2009 at 09:16 PM Report Share #287366 Posted September 16, 2009 at 09:16 PM Eu também sou da opinião q estás a complicar demasiado a solução, uma tabela para cada fornecedor é um exagero. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
brunu125 Posted September 16, 2009 at 09:37 PM Author Report Share #287374 Posted September 16, 2009 at 09:37 PM boas pessoal obrigado pela ajuda, ja resolvi um erro, mas agora aparece o seguinte erro neste codigo: Me.Textnumero.Text = numero MsgBox(Me.Textnumero.Text) Const constri As String = "Data Source=.\SQLEXPRESS;AttachDbFilename='C:\Ecorritel\Gestor\gestor\gestor\g_f.mdf';Integrated Security=True;Connect Timeout=30;User Instance=True" Dim dbi As New SqlConnection(constri) dbi.Open() Dim varsqli As String varsqli = "CREATE TABLE " & Me.Textnumero.Text & " (ola varchar(10))" Dim cmdi As New SqlCommand(varsqli, dbi) cmdi.ExecuteScalar() dbi.Close() na expressao cmdi.ExecuteScalar() aparece o seguinte erro : Incorrect syntax near '12'. a textnumero tem o texto "12" q é o numero do fornecedor. a intensão é q seja tambem o nome desta tabela podem dar uma nova ajuda sff? cumps bpinto Link to comment Share on other sites More sharing options...
brunu125 Posted September 16, 2009 at 09:53 PM Author Report Share #287376 Posted September 16, 2009 at 09:53 PM Eu também sou da opinião q estás a complicar demasiado a solução, uma tabela para cada fornecedor é um exagero. eu sei q é um pouco exagerado, mas escolhi assim porque cada fornecedor pode trazer muitos tipos de material, e assim tenho um control de cada fornecedor, tudo aquilo aque ja trouxe, e o dinheiro q ja levou... Link to comment Share on other sites More sharing options...
ribeiro55 Posted September 16, 2009 at 10:12 PM Report Share #287380 Posted September 16, 2009 at 10:12 PM Não tendo a certeza, arriscaria a dizer que as regras de nomenclatura, por exemplo das variáveis, estão aplicadas também às tabelas de SQL. Uma delas diz que um nome não pode começar por um número. Faz por exemplo: varsqli = "CREATE TABLE T" & Me.Textnumero.Text & " (ola varchar(10))" Retirar o número para processamento de uma string tipo "T12" é simples. Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
jpaulino Posted September 16, 2009 at 10:14 PM Report Share #287381 Posted September 16, 2009 at 10:14 PM Eu também sou da opinião q estás a complicar demasiado a solução, uma tabela para cada fornecedor é um exagero. Eu também, mas não entendi isso na altura B) Link to comment Share on other sites More sharing options...
brunu125 Posted September 16, 2009 at 10:20 PM Author Report Share #287382 Posted September 16, 2009 at 10:20 PM Eu também, mas não entendi isso na altura B) mas existe outra maneira de fazer o que pretendo? cumps bpinto Link to comment Share on other sites More sharing options...
ribeiro55 Posted September 16, 2009 at 10:25 PM Report Share #287384 Posted September 16, 2009 at 10:25 PM Não estou muito perspicaz a esta hora, mas se queres guardar fornecedores e respectivos dados, não bastaria uma tabela que tenha como colunas todos os dados que pretendes? Onde cada linha representaria um fornecedor distinto. Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
brunu125 Posted September 16, 2009 at 10:29 PM Author Report Share #287387 Posted September 16, 2009 at 10:29 PM Não tendo a certeza, arriscaria a dizer que as regras de nomenclatura, por exemplo das variáveis, estão aplicadas também às tabelas de SQL. Uma delas diz que um nome não pode começar por um número. Faz por exemplo: varsqli = "CREATE TABLE T" & Me.Textnumero.Text & " (ola varchar(10))" Retirar o número para processamento de uma string tipo "T12" é simples. Muito obrigado pela ajuda, tanto a ti ribeiro55 como a todos os outros, ja consegui fazer o q queria! B) cumps bpinto Link to comment Share on other sites More sharing options...
ribeiro55 Posted September 16, 2009 at 10:31 PM Report Share #287388 Posted September 16, 2009 at 10:31 PM Marca o tópico como resolvido (em baixo, "Topic Solved"), sempre que obtenhas uma resolução. Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
bruno1234 Posted September 16, 2009 at 10:31 PM Report Share #287389 Posted September 16, 2009 at 10:31 PM mas existe outra maneira de fazer o que pretendo? cumps bpinto Sim. De uma maneira muito geral: 1 - Uma tabela com a listagem dos fornecedores: -idFornecedor PK -nome -etc... 2 - Uma tabela com a listagem dos materiais -idMaterial PK -etc... 3 - Tabela Geral onde vais guardar os dados associados aos materiais q cada um forneceu - IdFornecimento PK - FK_idFornecedor - FK_idMaterial - Datas - etc... Não sei se o objectivo é mm este, mas serve como exemplo de como podes estruturar o teu modelo de dados. Depois é só fazer uns joins. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
brunu125 Posted September 16, 2009 at 10:37 PM Author Report Share #287392 Posted September 16, 2009 at 10:37 PM Mais uma vez obrigado a todos, bruno1234 vou adaptar a tua dica á minha aplicação, obrigado! ribeiro55 obrigado pelas luzes de como devo fazer as coisas aqui no forum xD cumps a todos bPinto ? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now