viernes, 14 de febrero de 2014

RecordCount siempre vale -1

Seguro que muchos programadores de vb6 esto lo darán por obvio, pero si estas en mi situación de toma un código y haz que funcione bien en SqlSever tal vez no sea tan evidente.
Durante la migración
Dim total as Integer
sSql = "SELECT distinct nif FROM miTabla "
miRs.Open sSql, gConSQL
total = miRs.RecordCount
Con la conexión vieja funcionaba pero con la conexión a sqlserver no ¿? el resultado era siempre el mismo -1 y tenía datos!!!
Solución
Dim  total as Integer 
sSql = "SELECT distinct nif FROM  miTabla "
miRs.Open sSql, gConSQL, , adOpenStatic
total = miRs.RecordCount
http://www.lawebdelprogramador.com/foros/Visual_Basic_ADO/1064827-RecordCount_SQL...ante_query__.html

viernes, 7 de febrero de 2014

Servidores vinculados - update




Tengo dos servidores
Servidor1
Servidor2

Están vinculados, es decir desde el servidor 1 puedo acceder al servidor2.
Si ejecuto esta sentencia en el servidor1

select servidor2.mibase.dbo.mitabla.columna1  from servidor2.mibase.dbo.mitabla 

Mens. 4104, Nivel 16, Estado 1, Línea 1
El identificador formado por varias partes "servidor2.mibase.dbo.mitabla.columna1" no se pudo enlazar.

Pero esto funciona:select mitabla.columna1  from servidor2.mibase.dbo.mitabla 

Bien alguno estará pensado que estoy un poco torpe, porque lo podría solucionan con alias. Eso sería cierto si no fuera porque lo quería en un update y era algo más complejo que todo eso

UPDATE servidor2.mibase.dbo.mitabla  SET
 columna2 = (SELECT a.valor1 FROM #tablatemporal a WHERE mitabla.columan1 = a.c1)
 WHERE columan1 IN (SELECT c1 FROM #tablatemporal)