En ocasiones es necesario hacer uso del paso de parametros cuando queremos hacer una consulta en Integration Services de SQL, después de googlear un poco encontré este método que es muy sencillo.

Primero debemos de tener nuestras variables que serán los parámetros (p.e. VarNumero) y además  se debe declarar una variable que sera nuestro query y tendrá nuestro parámetro (p.e. VarQuery),  esta variable debe ser de tipo String, en ella se debe de poner el valor de TRUE en la propiedad EvaluateasExpression, y dentro de Expression debemos de poner nuestro query de la siguiente manera
“Select * from Tabla where campox >= ” +  (DT_WSTR, 10) @[User::VarNumero]

Ya dentro de nuestro Data Flow Task, en la propiedad Expressions, debemos de seleccionar la primera opción que dice SQLCommand y en el valor debemos de poner @Varquery.

De esta manera el query obtiene el valor de la variable que se tendra como parámetro.

Saludos

Como por tercera vez me he topado con la necesidad de comparar 2 tablas identicas que se encuentran ya sea en servidores diferentes, o simplemente es para comparar que registros sufrieron cambios en un periodo de tiempo.

Y como por tercera vez tuve que preguntarle a la misma persona jaja  y para ya no volverle a preguntar mejor lo escribo aquí.

si en algún momento necesitan comparar 2 tablas IDENTICAS (misma cantidad de campos) aquí les va el query que necesitan hacer

Continue reading

En ocasiones se necesita borrar datos de una tabla que estan “ligados” a otra, sin embargo dichos campos no necesariamente son llaves, por consecuencia el borrado es un poco mas complejo.

Encontré una manera mediante Triggers de hacer un borrado de datos de otras tablas cuando borras un dato de una tabla principal.

Les dejo el código

CREATE TRIGGER triggerdemo
ON dbo.bloque11
AFTER DELETE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @folio INTEGER
SELECT @folio=FOLIO FROM deleted
DELETE FROM bloque22
WHERE bloque22.Folio =@folio
END
GO

Espero les sea de utilidad

saludos

Hoy intentando encontrar donde se ocupaban ciertas tablas dentro de un universo de Stored Procedures de SQL, me di a la tarea de buscar una manera de encontrarlas mas rápidamente, y dentro del mismo proyecto venian algunas consultas y una en particular me llamó mucho la atención y que me dió la idea de cambiar ciertos datos y obtener lo que buscaba.

Les dejo el código

SELECT *
FROM sysobjects SO
JOIN syscomments SC
ON SO.id = SC.id
WHERE SC.text LIKE ‘%’ + ‘textoabuscar’+ ‘%’

Con esto obtienen una lista de todos los Stored Procedures, Funciones y demás donde se haga referencia a lo que estan buscando

espero sea de utilidad

saludos

Algunas veces es necesario bajar archivos almacenados en la carpeta Document de SalesForce, como alguno de ustedes saben, estos archivos son codificados a base64, después de investigar un rato veo que la manera mas fácil de hacerlo es la siguiente:

Dim qdoc As sforce.QueryResult
Dim document As sforce.Document
qdoc = sfdc.query(String.Format(“Select d.Body, d.BodyLength, d.Id, d.Name from Document d where id = ‘01530000000nu6K’ “))
Dim records() As sforce.sObject = qdoc.records
document = CType(records(0), sforce.Document)

Try
Dim file As FileStream = New FileStream(“d:\\temp\\test.txt”, FileMode.Create)
Dim sw As BinaryWriter = New BinaryWriter(file)
sw.Write(document.Body)
sw.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try

espero les sea de utilidad

En ocasiones se necesita copiar datos entre datatables, aqui pongo una manera facil de poder hacer estas operaciones.

Primero se declaran 2 datatables, el primero obtendra los resultados de un query, y por consecuencia tendra un numero determinado de columnas, se pone un ciclo para copiar el numero de columnas al 2do datatable y posteriormente se hace el copiado de datarows entre ambos

Dim DataTableLeer As New DataTable
Dim DataTableLeer2 As New DataTable
Dim selectcmd As New SqlClient.SqlDataAdapter

Dim conn As New SqlClient.SqlConnection(String.Format(“Data Source='{0}’;Initial Catalog='{1}’;User Id= ‘{2}’;Password ='{3}’;”, server, database, username, password))

conn.Open()
DataTableLeer.Clear()

selectcmd = New SqlClient.SqlDataAdapter(String.Format(“Select * from tabla “), conn)
selectcmd.Fill(DataTableLeer)

For i As Integer = 0 To DataTableLeer.Columns.Count – 1
DataTableLeer2.Columns.Add(DataTableLeer.Columns(i).ColumnName)
Next

DataTableLeer2.Rows.Add(DataTableLeer.Rows(0).ItemArray)

espero sea de utilidad

saludos

En algunas ocasiones es necesario mandar un correo electronico desde tu aplicacion, esto de manera automatica y en ocasiones sin que te avise.. aqui les escribo una manera rapida de hacerlo para una cuenta de correo de GMAIL

Public Sub sendmail()
Dim Mensaje As New System.Net.Mail.MailMessage()
Dim Servidor As New System.Net.Mail.SmtpClient

Servidor.Credentials = New System.Net.NetworkCredential(“correofuente@gmail.com”, “contraseniadegmail”)
Servidor.Host = “smtp.gmail.com”
Servidor.Port = 587
Servidor.EnableSsl = True
Continue reading

Como alguno saben y otros apenas se enteran(como es mi caso), en un datatable de VB .NET se pueden guardar distintos tipos de datos e inclusive Objetos, sin embargo, antes de agregar valores hay que declarar primero que tipo de valor se guardará para dicha columna, ya que en caso de no hacerlo por defecto se guardan como tipo String.

Para asignar un tipo de dato a una columna de un DataTable solamente hay que hacer lo siguiente

Continue reading