Concatenização de variáveis
Prezados;
Estou com o seguinte problema:
Preciso concatenar uma cadeia de caracter e depois de concatenada resgatar um valor contido em um RecordSet, aqui sou obrigado a usar VB6 (estou importando dados contidos em uma aplicação VB6 para a base de dados da aplicação VB.Net), estou resolvi fazer da seguinte forma:
Passo a descrição do campo correspondente a matéria em questão (Mat01 é Língua Portuguesa, não me pergunte porque foi feito assim, não fui eu que fiz) para uma variável.
strComponente = "Mat01"
Despois utilizo uma função para descobrir se o valor contido no campo é um valor, se não for a rotina retorna 0 (zero).
'RSAlunoBdNetB1 é um RecordSet
vAv1B1 = RetornaAvBolSCA("RSAlunoBdNetB1!" & strComponente & "Nota01")
A concatenização de
"RSAlunoBdNetB1!" & strComponente & "Nota01"
resultará em
RSAlunoBdNetB1!Mat01Nota01
O problema é que eu quero passo o valor contido no campo do RecordSet ao invés da cadeia de caracter, seria algo assim: vamos supor que RSAlunoBdNetB1!Mat01Nota01 = 8,0 , então neste caso preciso passar 8,0 e não estou lembrando de forma alguma como fazer isso.
Vocês podem me ajudar?
Assim que passar por esta pedra devo continuar meus trabalhos no sistema que estou construindo em VB.NET
Obrigado!
Indemberge Santos
Curtidas 0
Respostas
Luiz Maia
26/05/2009
Indemberg, esta um pouco confuso seu problema.
Pode ser mais detalhista por favor? Vc quer fazer isto em VB6 ou na Base de Dados?
Aguardo
GOSTEI 0
Indemberge Santos
26/05/2009
Luiz;
Boa tarde!
Eu preciso fazer isso no VB.
Preciso do conteúdo que está em um campo no meu RecordSet, mas como a modelagem do banco é totalmente louca, para cada conteúdo preciso informar o nome do campo.
A modelagem que foi utilizada para o sistema acadêmico anterior ao que estou desenvolvendo armazenaria as notas de diversos alunos, eu e acredito que maioria dos profissionais de TI, criaria uma tabela com o código da matéria e outra tabela como o código do aluno, faria uma relação de um pra muitos, e pronto, seria muito simples.
TbBoletim
CodAluno
CodMateria
Nota1
Nota2
Contudo o pessoal não fez assim. Fizeram da seguinte forma:
TbBoletim
CodAluno
Mat01Nota01
Mat01Nota02
Mat01NotaN...
Mat02Nota01
Mat02Nota02
...
MatNNotaN
Para cada Matéria possuo um mapa que informa por exemplo que Mat01 é Língua Portuguesa e assim sucessivamente...
Agora preciso pegar tudo que está na modelagem antigo (errada) e transferir para modelagem correta, então fiz um procedimento que varre a base de dados e quando encontra um a aluno na tabela de boletim ela terá que pegar a nota de cada matéria que está em um RecordSet alterando apenas o nome da Matéria, Ex.:
'Criei uma variável do tipo string
Dim strComponente As String
'Armazeno o nome do campo correspondente a matéria
strComponente = "Mat01"
'Agora preciso pegar a nota que está no RecordSet concatenando um cadeia de caracteres a minha variável
'Eu fiz assim e não está funcionando
teste = "RSAlunoBdNetB1!" & strComponente & "Nota01"
Se não fosse isso eu faria assim e teria o conteúdo do campo:
teste = RSAlunoBdNetB1!Mat01Nota01
Ex.: RSAlunoBdNetB1!Mat01Nota01 -> 8,0
GOSTEI 0
Indemberge Santos
26/05/2009
Luiz;
Boa tarde!
Eu preciso fazer isso no VB.
Preciso do conteúdo que está em um campo no meu RecordSet, mas como a modelagem do banco é totalmente louca, para cada conteúdo preciso informar o nome do campo.
A modelagem que foi utilizada para o sistema acadêmico anterior ao que estou desenvolvendo armazenaria as notas de diversos alunos, eu e acredito que maioria dos profissionais de TI, criaria uma tabela com o código da matéria e outra tabela como o código do aluno, faria uma relação de um pra muitos, e pronto, seria muito simples.
TbBoletim
CodAluno
CodMateria
Nota1
Nota2
Contudo o pessoal não fez assim. Fizeram da seguinte forma:
TbBoletim
CodAluno
Mat01Nota01
Mat01Nota02
Mat01NotaN...
Mat02Nota01
Mat02Nota02
...
MatNNotaN
Para cada Matéria possuo um mapa que informa por exemplo que Mat01 é Língua Portuguesa e assim sucessivamente...
Agora preciso pegar tudo que está na modelagem antigo (errada) e transferir para modelagem correta, então fiz um procedimento que varre a base de dados e quando encontra um a aluno na tabela de boletim ela terá que pegar a nota de cada matéria que está em um RecordSet alterando apenas o nome da Matéria, Ex.:
'Criei uma variável do tipo string
Dim strComponente As String
'Armazeno o nome do campo correspondente a matéria
strComponente = "Mat01"
'Agora preciso pegar a nota que está no RecordSet concatenando um cadeia de caracteres a minha variável
'Eu fiz assim e não está funcionando
teste = "RSAlunoBdNetB1!" & strComponente & "Nota01"
Se não fosse isso eu faria assim e teria o conteúdo do campo:
teste = RSAlunoBdNetB1!Mat01Nota01
Ex.: RSAlunoBdNetB1!Mat01Nota01 -> 8,0
GOSTEI 0
Indemberge Santos
26/05/2009
Luiz;
Boa tarde!
Eu preciso fazer isso no VB.
Preciso do conteúdo que está em um campo no meu RecordSet, mas como a modelagem do banco é totalmente louca, para cada conteúdo preciso informar o nome do campo.
A modelagem que foi utilizada para o sistema acadêmico anterior ao que estou desenvolvendo armazenaria as notas de diversos alunos, eu e acredito que maioria dos profissionais de TI, criaria uma tabela com o código da matéria e outra tabela como o código do aluno, faria uma relação de um pra muitos, e pronto, seria muito simples.
TbBoletim
CodAluno
CodMateria
Nota1
Nota2
Contudo o pessoal não fez assim. Fizeram da seguinte forma:
TbBoletim
CodAluno
Mat01Nota01
Mat01Nota02
Mat01NotaN...
Mat02Nota01
Mat02Nota02
...
MatNNotaN
Para cada Matéria possuo um mapa que informa por exemplo que Mat01 é Língua Portuguesa e assim sucessivamente...
Agora preciso pegar tudo que está na modelagem antigo (errada) e transferir para modelagem correta, então fiz um procedimento que varre a base de dados e quando encontra um a aluno na tabela de boletim ela terá que pegar a nota de cada matéria que está em um RecordSet alterando apenas o nome da Matéria, Ex.:
'Criei uma variável do tipo string
Dim strComponente As String
'Armazeno o nome do campo correspondente a matéria
strComponente = "Mat01"
'Agora preciso pegar a nota que está no RecordSet concatenando um cadeia de caracteres a minha variável
'Eu fiz assim e não está funcionando
teste = "RSAlunoBdNetB1!" & strComponente & "Nota01"
Se não fosse isso eu faria assim e teria o conteúdo do campo:
teste = RSAlunoBdNetB1!Mat01Nota01
Ex.: RSAlunoBdNetB1!Mat01Nota01 -> 8,0
GOSTEI 0
Indemberge Santos
26/05/2009
Luiz;
Boa tarde!
Eu preciso fazer isso no VB.
Preciso do conteúdo que está em um campo no meu RecordSet, mas como a modelagem do banco é totalmente louca, para cada conteúdo preciso informar o nome do campo.
A modelagem que foi utilizada para o sistema acadêmico anterior ao que estou desenvolvendo armazenaria as notas de diversos alunos, eu e acredito que maioria dos profissionais de TI, criaria uma tabela com o código da matéria e outra tabela como o código do aluno, faria uma relação de um pra muitos, e pronto, seria muito simples.
TbBoletim
CodAluno
CodMateria
Nota1
Nota2
Contudo o pessoal não fez assim. Fizeram da seguinte forma:
TbBoletim
CodAluno
Mat01Nota01
Mat01Nota02
Mat01NotaN...
Mat02Nota01
Mat02Nota02
...
MatNNotaN
Para cada Matéria possuo um mapa que informa por exemplo que Mat01 é Língua Portuguesa e assim sucessivamente...
Agora preciso pegar tudo que está na modelagem antigo (errada) e transferir para modelagem correta, então fiz um procedimento que varre a base de dados e quando encontra um a aluno na tabela de boletim ela terá que pegar a nota de cada matéria que está em um RecordSet alterando apenas o nome da Matéria, Ex.:
'Criei uma variável do tipo string
Dim strComponente As String
'Armazeno o nome do campo correspondente a matéria
strComponente = "Mat01"
'Agora preciso pegar a nota que está no RecordSet concatenando um cadeia de caracteres a minha variável
'Eu fiz assim e não está funcionando
teste = "RSAlunoBdNetB1!" & strComponente & "Nota01"
Se não fosse isso eu faria assim e teria o conteúdo do campo:
teste = RSAlunoBdNetB1!Mat01Nota01
Ex.: RSAlunoBdNetB1!Mat01Nota01 -> 8,0 teste
GOSTEI 0
Indemberge Santos
26/05/2009
Luiz;
Boa tarde!
Eu preciso fazer isso no VB.
Preciso do conteúdo que está em um campo no meu RecordSet, mas como a modelagem do banco é totalmente louca, para cada conteúdo preciso informar o nome do campo.
A modelagem que foi utilizada para o sistema acadêmico anterior ao que estou desenvolvendo armazenaria as notas de diversos alunos, eu e acredito que maioria dos profissionais de TI, criaria uma tabela com o código da matéria e outra tabela como o código do aluno, faria uma relação de um pra muitos, e pronto, seria muito simples.
TbBoletim
CodAluno
CodMateria
Nota1
Nota2
Contudo o pessoal não fez assim. Fizeram da seguinte forma:
TbBoletim
CodAluno
Mat01Nota01
Mat01Nota02
Mat01NotaN...
Mat02Nota01
Mat02Nota02
...
MatNNotaN
Para cada Matéria possuo um mapa que informa por exemplo que Mat01 é Língua Portuguesa e assim sucessivamente...
Agora preciso pegar tudo que está na modelagem antigo (errada) e transferir para modelagem correta, então fiz um procedimento que varre a base de dados e quando encontra um a aluno na tabela de boletim ela terá que pegar a nota de cada matéria que está em um RecordSet alterando apenas o nome da Matéria, Ex.:
'Criei uma variável do tipo string
Dim strComponente As String
'Armazeno o nome do campo correspondente a matéria
strComponente = "Mat01"
'Agora preciso pegar a nota que está no RecordSet concatenando um cadeia de caracteres a minha variável
'Eu fiz assim e não está funcionando
teste = "RSAlunoBdNetB1!" & strComponente & "Nota01"
Se não fosse isso eu faria assim e teria o conteúdo do campo:
teste = RSAlunoBdNetB1!Mat01Nota01
Ex.: RSAlunoBdNetB1!Mat01Nota01 -> 8,0 teste ->
GOSTEI 0
Indemberge Santos
26/05/2009
Cliquei tecla que adicionou várias vezes a mesma coisa.
Concluindo:
teste -> 8,0
Preciso concatenar um cadeia de caracteres a uma variável e pegar o valor contido no RecordSet ao qual o nome será formado por esta cadeia de caracteres.
Entendeu?
GOSTEI 0
Luiz Maia
26/05/2009
Ola, ainda esta complicado enteder, mas pelo que entendi, vc não sabe o nome das colunas, geradas dinamicamente e que recuperar o valor de cada, correto?
Exemplo:
1 - Vc concatena alguna parametros e gera a seguinte String:
RSAlunoBdNetB1!Mat01Nota01
2 - Depois vc precisa usar esta String na query, como esta usando vb6, de ve fazer assim:
String strSql = "select " & RSAlunoBdNetB1!Mat01Nota01 & " as nota from aluno where bla, bla..."
É isto?
Aguardo
Att
Luiz Maia
GOSTEI 0
Indemberge Santos
26/05/2009
Não.
É o seguinte:
teste = "RSAlunoBdNetB1!" & strComponente & "Nota01"
Acima a variável teste recebe uma cadeia de caracteres que referencia o campo localizado em um RecordSet(RSAlunoBdNetB1).
O valor contido no campo RSAlunoBdNetB1!Mat01Nota01 é IGUAL a 8,0
Eu preciso passar esse valor (8,0) para a variável teste, sendo que preciso concatenar a cadeia de caracteres para saber qual campo devo pegar.
Da forma que estou fazendo, teste está recebendo a cadeia de caracteres e não o valor contido no campo do RecordSet.
Um abraço;
Indemberge
GOSTEI 0
Luiz Maia
26/05/2009
Ah sim........
Agora ficou facil...
Vc precisa fazer o seguinte:
Depois que recuperar seu recordset, suponhamos o seguinte:
Set Rs = Server.CreateObject("ADODB.Recordset")
Sql = "Select * From suaTabela order by 1 ASC"
Rs.Open Sql, con, 3, 1
teste = Rs("RSAlunoBdNetB1!Mat01Nota01")
Assim, a variavel teste recebe o valor do campo do RecordSet.
É isto?
Abraços
Att
Luiz Maia
GOSTEI 0
Indemberge Santos
26/05/2009
Luiz;
Você não entendeu mesmo.
Mas tudo bem, vou mudar a minha lógica, pois estou com meu prazo estourado.
Um abraço;
Indemberge
GOSTEI 0
Luiz Maia
26/05/2009
Blz Indemberg, precisando é so falar.
Abraços
Att
Luiz Maia
GOSTEI 0
Indemberge Santos
26/05/2009
Luiz;
Muito obrigado pela atenção!
Realmente o que eu estava precisando era um pouco difícil de entender, além do mais estava com uma certa urgência, e como falei anteiormente, consegui resolver mudado a lógica.
Graças a Deus deu tudo certo.
Agora estou com um outro problema, portanto vou abrir um outro chamado.
Um abraço;
Indemberge
GOSTEI 0
Luiz Maia
26/05/2009
Blz Indemberg, precisando, é so falar.
Abraços
Att
Luiz Maia
GOSTEI 0