williamjda Posted September 8, 2016 at 02:14 PM Report #598731 Posted September 8, 2016 at 02:14 PM Bom dia amigos. Tenho uma pergunta para fazer. Tenho em meu sistema vários relatórios com Crystal Report. Porem a algum tempo tenho algumas duvidas sobre como trabalhar com o Crystal Report. Já vi varios videos ensinando a fazer impressão com Crystal Report mas em nenhum deles explica como é feita a autenticação do sistema com o banco de dados. Ai as minhas duvidas. Bom vou explicar como eu faço e se alguém tiver uma sugestão melhor ficaria muito grato. EXEMPLO: Cadastro de Funcionários. No form tem os dados do cadastro, um DataGridViwer que recebe os dados da consulta do cadastro selecionado. E um botão de imprimir. Este botão abre o crystal Report que apresenta os dados do DataGrid. O código é assim: Dim dv As DataView = New DataView() Dim dt As New DataTable Dim R As New CRP_Print_Form '' nome do formulario Dim cr As New CRP_CF_Beneficios2 ''nome do crystal report dv = DirectCast(DataGrid_Dados_Report.DataSource, DataView) ''crio uma DataView com os dados da DataSource da DataGrid_dados dt = dv.ToTable().Clone() ''clona a estrutura da DataView para a DataTable dt For Each dr In dv.ToTable().Select() ''percorre as rows da DataView e selecciona a actual dt.ImportRow(dr) ''importa cada row para a DataTable dt Next cr.SetDataSource(dt) R.CRP_Documents.ReportSource = cr ''nome do crystal report viewer R.ShowDialog() Até aqui funciona perfeitamente se o Crystal Report tiver apenas uma tabela do banco de dados. Porem meu sistema trabalha com segregação de empresas. Ou seja o sistema pode ter varias empesas cadastradas. E cada empresa tem um cabeçalho diferente. Então eu em cadas Crystal Report tem pelo menos 2 tabelas anexadas, sendo uma do Cadastro de Empresa e outra dos Dados em questão. Assim quando um usuário logar no sistema seja de qualquer empresa o cabeçalho do formulário é alterado automaticamente. Eu entendo que a autenticação do Windows é feita pelo Domínio AD (Active Directory) e se os computadores estiverem no mesmo domínio é possível fazer a autenticação integrada. Assim ao abrir o Crystal Report não é necessário colocar o usuário e senha do banco de dados. Mas a minha questão é que na rede onde esta o sistema os computadores não estão em um domínio pois são computadores com windows 7, incluindo o servidor onde está o banco de dados. Então não da para fazer autenticação integrada então toda vez q alguém abre um Crystal Report é necessário colocar o usuário e senha do Banco de Dados. Meu cenário: 01 servidor de Banco de Dados e aplicação - Windows 7 15 estações de trabalho na rede com windows 7 Como posso fazer o Crystal Report não pedir autenticação?
apocsantos Posted September 8, 2016 at 03:29 PM Report #598734 Posted September 8, 2016 at 03:29 PM Boa tarde, A questão parece-me confusa e quase "caldeirada de conceitos e tecnologias", passo a expressão. Por partes, o facto de não terem windows server não significa que não possam ter um domínio LDAP, basta terem uma maquina linux com os respectivos deamons e devidamente configurada. Para abrir reports de crystall reports, dentro de uma aplicação feita em VB.NET não é necessário autenticar o utilizador ao servidor SQL. Os dados que geram o report devem vir de um dataset que pode conter N datatables, logo o crystall, não precisa de acesso ao servidor em momento algum. Repara no teu código: Dim dv As DataView = New DataView() Dim dt As New DataTable 'cria uma datatable Dim R As New CRP_Print_Form ' nome do formulario 'Dim cr As New CRP_CF_Beneficios2 'nome do crystal report Dim cr As New CRP_CF_Beneficios4 'nome do crystal report dv = DirectCast(CF.DataGrid_Dados_Report.DataSource, DataView) 'crio uma DataView com os dados da DataSource da DataGrid_dados dt = dv.ToTable().Clone() 'clona a estrutura da DataView para a DataTable dt For Each dr In dv.ToTable().Select() 'percorre as rows da DataView e selecciona a actual dt.ImportRow(dr) 'importa cada row para a DataTable dt Next cr.SetDataSource(dt) 'define como datasource do report a datatable R.CRP_Documents.ReportSource = cr 'nome do crystal report viewer R.ShowDialog() Agora vê como fazer para múltiplas tabelas dentro de um dataset: Dim dset as new DataSet() ''cria um dataset dset.Tables.Add(dtableZero) ''adiciona uma tabla ao dataset dset.Tables.Add(dtableUm) ''adiciona outra tablea ao dataset rpt.SetDataSource(ds) ''define como source do report o dataset (com as datatables) CrystalReportViewer1.ReportSource = rpt CrystalReportViewer1.RefreshReport() CrystalReportViewer1.Show() Podes preencher as datatables com resultados de query's feitas à base de dados, e "alimentar" o report do crystall com os dados da datatable. Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
williamjda Posted September 8, 2016 at 06:59 PM Author Report #598741 Posted September 8, 2016 at 06:59 PM Boa tarde. Não consegui implementar o seu código. Pois da maneira que fiz esta dando erro. Minha consulta está assim: Imports Microsoft.VisualBasic Imports System.Data.SqlClient Imports System.Data Module SELECT_CF_Report_Beneficios Public sqlDados1 As New DataSet ''GUARDA A CONSULTA REALIZADA NO DATA SET Public sqlDados2 As New DataSet ''GUARDA A CONSULTA REALIZADA NO DATA SET ''' <summary> ''' CARREGA OS ITENS NO REPORT PARA IMPRESSÃO ''' </summary> ''' <remarks></remarks> Public Sub Select_Dados() ''FECHA A CONEXÃO COM O BANCO ConectionBD.Close() Try ''FAZ A CONSULTA NO BANCO GERA O REPORT PARA IMPRESSÃO Dim SQLConsulta1 As New SqlDataAdapter("SELECT * FROM Cadastro_Funcionario" _ & " WHERE idcolaborador = '" & CF.DataGrid_Dados.CurrentRow.Cells(0).Value & "'" _ & " AND empresa = '" & WASINFOSystem.txtempresa.Text & "'", ConectionBD.ConnectionString) ''FAZ A CONSULTA NO BANCO GERA O REPORT PARA IMPRESSÃO Dim SQLConsulta2 As New SqlDataAdapter("SELECT * FROM Cadastro_Funcionario" _ & " WHERE idcolaborador = '" & CF.DataGrid_Dados.CurrentRow.Cells(0).Value & "'" _ & " AND empresa = '" & WASINFOSystem.txtempresa.Text & "'", ConectionBD.ConnectionString) ''ABRE A CONEXÃO COM O BANCO ConectionBD.Open() ''RECEBE OS DADOS DO DATA SET SQLConsulta1.Fill(sqlDados1) SQLConsulta2.Fill(sqlDados2) ''FECHA A CONEXÃO COM O BANCO ConectionBD.Close() Catch ex As Exception ''EM CASO DE ERRO, RETORNA A MENSAGEM MsgBox(ex.Message, MsgBoxStyle.Exclamation, "SELECT_CF_Report_Beneficios") ''FECHA A CONEXÃO COM O BANCO DE DADOS ConectionBD.Close() End Try O botão para imprimir ficou assim: SELECT_CF_Report_Beneficios.Select_Dados() ''faz a consulta Dim dset As New DataSet() ''cria um dataset Dim ds As New DataTable Dim rpt As New CRP_CF_Beneficios2 ''nome do crystal report dset.Tables.Add(SELECT_CF_Report_Beneficios.sqlDados1.Tables(0).DefaultView.Table) ''adiciona uma tabla ao dataset dset.Tables.Add(SELECT_CF_Report_Beneficios.sqlDados2.Tables(0).DefaultView.Table) ''adiciona outra tablea ao dataset rpt.SetDataSource(ds) ''define como source do report o dataset (com as datatables) CRP_Print_Form.CRP_Documents.ReportSource = rpt CRP_Print_Form.CRP_Documents.RefreshReport() CRP_Print_Form.Show() O erro: DataTable already belongs to another DataSet. dset.Tables.Add(SELECT_CF_Report_Beneficios.sqlDados1.Tables(0).DefaultView.Table) ''adiciona uma tabla ao dataset Diz que o DataTable pertence a outro DataSet. Mas não entendi como implementar.
apocsantos Posted September 8, 2016 at 07:27 PM Report #598744 Posted September 8, 2016 at 07:27 PM Boa noite, Já olhaste bem para o teu código ? Imports Microsoft.VisualBasic Imports System.Data.SqlClient Imports System.Data Module SELECT_CF_Report_Beneficios Public sqlDados1 As New DataSet ''GUARDA A CONSULTA REALIZADA NO DATA SET Public sqlDados2 As New DataSet ''GUARDA A CONSULTA REALIZADA NO DATA SET ''' <summary> ''' CARREGA OS ITENS NO REPORT PARA IMPRESSÃO ''' </summary> ''' <remarks></remarks> Public Sub Select_Dados() ''FECHA A CONEXÃO COM O BANCO Try ''FAZ A CONSULTA NO BANCO GERA O REPORT PARA IMPRESSÃO Dim SQLConsulta1 As New SqlDataAdapter("SELECT * FROM Cadastro_Funcionario" _ & " WHERE idcolaborador = '" & CF.DataGrid_Dados.CurrentRow.Cells(0).Value & "'" _ & " AND empresa = '" & WASINFOSystem.txtempresa.Text & "'", ConectionBD.ConnectionString) Dim datatbleUm As New DataTable ConectionBD.Open() Using dadapter As New SqlDataAdapter(SQLConsulta1, ConectionBD) dadapter.Fill(datatbleUm) End Using ''FAZ A CONSULTA NO BANCO GERA O REPORT PARA IMPRESSÃO Dim SQLConsulta2 As New SqlDataAdapter("SELECT * FROM Cadastro_Funcionario" _ & " WHERE idcolaborador = '" & CF.DataGrid_Dados.CurrentRow.Cells(0).Value & "'" _ & " AND empresa = '" & WASINFOSystem.txtempresa.Text & "'", ConectionBD.ConnectionString) Using dadapter As New SqlDataAdapter(SQLConsulta2, ConectionBD) dadapter.Fill(datatbleDois) End Using ''FECHA A CONEXÃO COM O BANCO ConectionBD.Close() Catch ex As Exception ''EM CASO DE ERRO, RETORNA A MENSAGEM MsgBox(ex.Message, MsgBoxStyle.Exclamation, "SELECT_CF_Report_Beneficios") ''FECHA A CONEXÃO COM O BANCO DE DADOS ConectionBD.Close() End Try Um dataset tem N datatables, tens de preencher cada datatable na sua vez, não enches a mesma datatable duas vezes com resultados diferentes. Usas as duas datatables que estão dentro do dataset, para fazer o report. Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
williamjda Posted September 8, 2016 at 07:44 PM Author Report #598747 Posted September 8, 2016 at 07:44 PM Esta dando erro: Overload resolution failed because no accessible 'New' can be called with these arguments: ''dadapter diz que não está acessivel. Using dadapter As New SqlDataAdapter(SQLConsulta1, ConectionBD) dadapter.Fill(datatbleUm) End Using Desculpe minha ignorância. Preciso declarar? até tentei mas não funcionou. Nunca havia trabalhado com o sql assim. Por isso minha dificuldade.
apocsantos Posted September 8, 2016 at 07:46 PM Report #598748 Posted September 8, 2016 at 07:46 PM Boa noite, Imports Microsoft.VisualBasic Imports System.Data.SqlClient Imports System.Data Module SELECT_CF_Report_Beneficios Public sqlDados1 As New DataSet ''GUARDA A CONSULTA REALIZADA NO DATA SET Public sqlDados2 As New DataSet ''GUARDA A CONSULTA REALIZADA NO DATA SET ''' <summary> ''' CARREGA OS ITENS NO REPORT PARA IMPRESSÃO ''' </summary> ''' <remarks></remarks> Public Sub Select_Dados() ''FECHA A CONEXÃO COM O BANCO Try ''FAZ A CONSULTA NO BANCO GERA O REPORT PARA IMPRESSÃO Dim SQLConsulta1 As New SqlDataAdapter("SELECT * FROM Cadastro_Funcionario" _ & " WHERE idcolaborador = '" & CF.DataGrid_Dados.CurrentRow.Cells(0).Value & "'" _ & " AND empresa = '" & WASINFOSystem.txtempresa.Text & "'", ConectionBD.ConnectionString) Dim datatbleUm As New DataTable ConectionBD.Open() Using dadapter As New SqlDataAdapter(SQLConsulta1, ConectionBD) dadapter.Fill(datatbleUm) End Using ''FAZ A CONSULTA NO BANCO GERA O REPORT PARA IMPRESSÃO Dim SQLConsulta2 As New SqlDataAdapter("SELECT * FROM Cadastro_Funcionario" _ & " WHERE idcolaborador = '" & CF.DataGrid_Dados.CurrentRow.Cells(0).Value & "'" _ & " AND empresa = '" & WASINFOSystem.txtempresa.Text & "'", ConectionBD.ConnectionString) Using dadapterDois As New SqlDataAdapter(SQLConsulta2, ConectionBD)''era assim tao dificil ? dadapter.Fill(datatbleDois) End Using ''FECHA A CONEXÃO COM O BANCO ConectionBD.Close() Catch ex As Exception ''EM CASO DE ERRO, RETORNA A MENSAGEM MsgBox(ex.Message, MsgBoxStyle.Exclamation, "SELECT_CF_Report_Beneficios") ''FECHA A CONEXÃO COM O BANCO DE DADOS ConectionBD.Close() End Try Garantidamente não te deste ao trabalho de ler o código. Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
williamjda Posted September 8, 2016 at 08:13 PM Author Report #598749 Posted September 8, 2016 at 08:13 PM Desculpe-me. Mas eu li. A questão que não estou conseguindo enxergar o que fazer. Poderia me ajudar?
apocsantos Posted September 8, 2016 at 09:06 PM Report #598750 Posted September 8, 2016 at 09:06 PM Boa noite, Aqui fica simplificado e comentado. Dim dset As New dataset() ''CRIA UM DATASET CHAMADO DSET Public Sub Select_Dados() Try ConectionBD.Open() ''PREPARA A CONSULTA NO BANCO GERA O REPORT PARA IMPRESSÃO Dim SQLConsulta1 As String = ("SELECT * FROM Cadastro_Funcionario" & " WHERE idcolaborador = '" + _ CF.DataGrid_Dados.CurrentRow.Cells(0).Value + _ "'" + " AND empresa = '" & WASINFOSystem.txtempresa.Text & "'") ''PREPARA A CONSULTA NO BANCO GERA O REPORT PARA IMPRESSÃO Dim SQLConsulta2 As String = ("SELECT * FROM Cadastro_Funcionario" _ + " WHERE idcolaborador = '" & CF.DataGrid_Dados.CurrentRow.Cells(0).Value & "'" _ + " AND empresa = '" & WASINFOSystem.txtempresa.Text & "'") Dim adapter As New sqlAdapter ''CRIA UM TABLEADAPTER CHAMADO ADAPTER Dim command As SqlCommand ''CRIA UM SQLCOMMAND, CHAMADO COMMAND command = New SqlCommand(SQLConsulta1, ConectionBD) ''PREPARA A PRIMEIRA QUERY PARA EXECUÇAO adapter.SelectCommand = command ''EXECUTA A PRIMEIRA QUERY adapter.Fill(dset, "cabecalho") ''MANDA A RESULTSET PARA O DATASET DSET COM O NOME "CABECALHO" adapter.SelectCommand.CommandText = SQLConsulta2 ''SUBSITUI O TEXTO DO COMANDO COMMAND PELA SEGUNDA QUERY E EXECUTA-A adapter.Fill(dset, "conteudo") ''MANDA A RESULTSET PARA O DATASET DSET COM O NOME "CABECALHO" adapter.Dispose() ''LIBERTA O ADAPTER PARA O GC RECOLHER command.Dispose() ''LIBERTA O COMMAND PARA O CG RECOLHER ConectionBD.Close() ''FECHA A CONNECCAO ConectionBD.Dispose() ''LIBERTA A CONNECAO POARA O GC RECOLHER Catch ex As Exception ''EM CASO DE ERRO, RETORNA A MENSAGEM MsgBox(ex.Message, MsgBoxStyle.Exclamation, "SELECT_CF_Report_Beneficios") ''FECHA A CONEXÃO COM O BANCO DE DADOS ConectionBD.Close() End Try Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
williamjda Posted September 9, 2016 at 04:50 PM Author Report #598771 Posted September 9, 2016 at 04:50 PM Olá amigo. Boa tarde. Primeiro: Bom, quanto ao código acima ele faz a consulta. Porem quando ele é executado pela segunda vez ele apresenta a seguinte mensagem: The ConectionString propert has not been initialized. Então qualquer consulta que o programa faz em qualquer tela a mesma mensagem é apresentada. Segundo: O Crystal Report carregou os dados. Porem o cabeçalho não. Mas ele carrega sempre o mesmo dado da primeira vez que foi executado. Ele não limpa o Report para mostrar outro dado. Aqui estou carregando o Crystal Report. Dim ds As New DataTable Dim rpt As New Teste ''nome do crystal report Dim datatbleUm As New DataTable dset.Tables.Add(datatbleUm) ''adiciona uma tabla ao dataset Dim datatbleDois As New DataTable dset.Tables.Add(datatbleDois) ''adiciona outra tablea ao dataset rpt.SetDataSource(ds) ''define como source do report o dataset (com as datatables) CRP_Print_Form.CRP_Documents.ReportSource = rpt CRP_Print_Form.CRP_Documents.RefreshReport() CRP_Print_Form.Show() Sei que deve ser algo simples. E como disse a pouco tempo estou trabalho com Crystal Report por isso minha dificuldade.
apocsantos Posted September 9, 2016 at 04:55 PM Report #598772 Posted September 9, 2016 at 04:55 PM Boa tarde, Agora, williamjda disse: Primeiro: Bom, quanto ao código acima ele faz a consulta. Porem quando ele é executado pela segunda vez ele apresenta a seguinte mensagem: The ConectionString propert has not been initialized. Então qualquer consulta que o programa faz em qualquer tela a mesma mensagem é apresentada. Basta corrigir o scope. Só vendo o código todo é que posso ver onde colocar a connectionString, para que fique inicializada correctamente no scope correcto. Quanto aos dados, basta ao construir o report, escolher como datasource "Project Data" e no project data do lado direito deverá aparecer o nome do dataset no caso "dset" e logo abaixo todas as tabelas que se encontrem dentro do dataset. De resto o código parece-me estar correcto, excepto a questão do scope da connectionString. Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
williamjda Posted September 9, 2016 at 05:20 PM Author Report #598773 Posted September 9, 2016 at 05:20 PM Segue abaixo o código: Public Sub Select_Dados() Try ConectionBD.Open() Dim codColab As String codColab = CF.DataGrid_Dados.CurrentRow.Cells(0).Value ''PREPARA A CONSULTA NO BANCO GERA O REPORT PARA IMPRESSÃO Dim SQLConsulta1 As String = ("SELECT * FROM Cadastro_Funcionario" & " WHERE idcolaborador = '" + _ codColab + _ "'" + " AND empresa = '" & WASINFOSystem.txtempresa.Text & "'") ''PREPARA A CONSULTA NO BANCO GERA O REPORT PARA IMPRESSÃO Dim SQLConsulta2 As String = ("SELECT * FROM Cadastro_Funcionario" _ + " WHERE idcolaborador = '" & CF.DataGrid_Dados.CurrentRow.Cells(0).Value & "'" _ + " AND empresa = '" & WASINFOSystem.txtempresa.Text & "'") Dim adapter As New SqlDataAdapter ''CRIA UM TABLEADAPTER CHAMADO ADAPTER Dim command As SqlCommand ''CRIA UM SQLCOMMAND, CHAMADO COMMAND Dim dset As New DataSet() ''CRIA UM DATASET CHAMADO DSET command = New SqlCommand(SQLConsulta1, ConectionBD) ''PREPARA A PRIMEIRA QUERY PARA EXECUÇAO adapter.SelectCommand = command ''EXECUTA A PRIMEIRA QUERY adapter.Fill(dset, "cabecalho") ''MANDA A RESULTSET PARA O DATASET DSET COM O NOME "CABECALHO" adapter.Dispose() ''LIBERTA O ADAPTER PARA O GC RECOLHER command.Dispose() ''LIBERTA O COMMAND PARA O CG RECOLHER ConectionBD.Close() ''FECHA A CONNECCAO ConectionBD.Dispose() ''LIBERTA A CONNECAO POARA O GC RECOLHER ''-------------------------------------------------- ''---------------Para carregar o report Dim ds As New DataTable Dim rpt As New Teste ''nome do crystal report Dim datatbleUm As New DataTable dset.Tables.Add(datatbleUm) ''adiciona uma tabla ao dataset Dim datatbleDois As New DataTable dset.Tables.Add(datatbleDois) ''adiciona outra tablea ao dataset rpt.SetDataSource(ds) ''define como source do report o dataset (com as datatables) CRP_Print_Form.CRP_Documents.ReportSource = rpt CRP_Print_Form.CRP_Documents.RefreshReport() CRP_Print_Form.Show() Catch ex As Exception ''EM CASO DE ERRO, RETORNA A MENSAGEM MsgBox(ex.Message, MsgBoxStyle.Exclamation, "SELECT_CF_Report_Beneficios") ''FECHA A CONEXÃO COM O BANCO DE DADOS ConectionBD.Close() End Try
apocsantos Posted September 9, 2016 at 05:46 PM Report #598774 Posted September 9, 2016 at 05:46 PM Boa tarde, Onde está o código da ConectionBD.Open() ? Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
williamjda Posted September 9, 2016 at 06:22 PM Author Report #598775 Posted September 9, 2016 at 06:22 PM Tem um conectionBD.Open(). No começo do código. E antes disso a conexão é fechada só no final.
apocsantos Posted September 10, 2016 at 01:08 AM Report #598783 Posted September 10, 2016 at 01:08 AM Boa noite, Aqui fica um exemplo de connectionstring devidamente construída. O erro que estás a ter só pode estar relacionado ou com scope, o que não me parece, ou com falta de parâmetros na tua connectionString, que não a vi, não tenho como saber. Dim Connection As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:git\vbtempproject\data\bd.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True" Using ConectionBD As New SqlConnection(connection) Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
williamjda Posted September 13, 2016 at 07:42 PM Author Report #598853 Posted September 13, 2016 at 07:42 PM Porem na sua conectionString aponta para uma banco de dados local. O meu projeto aponta para um servidor de banco de dados. Tenho um servidor para aplicação e um servidor para o banco de dados. E vários usuários acessam pela rede a aplicação em uma unidade mapeada. Public ConectionBD As New SqlConnection("Data Source=192.168.1.10,1433; Initial Catalog=BD_Dados; Persist Security Info=True; User ID=sa; Password=senhadobanco")
apocsantos Posted September 13, 2016 at 08:00 PM Report #598855 Posted September 13, 2016 at 08:00 PM Boa noite, Public ConectionBD As New SqlConnection("Data Source=192.168.1.10\instancia; Initial Catalog=BD_Dados; Persist Security Info=True; User ID=sa; Password=senhadobanco") Using ConectionBD As New SqlConnection(connection) Uma maquina com SQL Server pode ter n instâncias do SQL server. Cada instância tem um nome. No caso tens de trocar o "instancia" pelo nome da tua instância de SQL Server onde está a BD. Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
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