Monday, July 31, 2006

"Cannot resolve collation conflict for equal to operation."

Ora aqui esta um erro que aconteceu, pensava eu "Ok projecto feito, toca a passar a BD para o servidor do cliente", ora la se muda e entao o que aconteceu quando arrebenta.....
"Cannot resolve collation conflict for equal to operation."


Problema: o problema nao é mais que um problema de linguaguem, se trabalhas com "Latin_general_CL_AS" e onde metes a BD esta com outra lingua, entao as tuas stored procedures entra em conflito e da erro.

Resolução: é associar ao campos a lingua por defeito da Base de dados.
exemplo:

Errada:
select employee_id
from MYLINKED.qdb.dbo.employee_appt qdb inner join
person on qdb.employee_id = person.my_id


Alterada:
select employee_id
from table.qdb.dbo.employee_appt qdb inner join
person on qdb.employee_id = person.my_id COLLATE database_default

Thursday, July 27, 2006

Associar Enter key ao Botão....

Pois é... nao sabia como associar o enter ao botao de submit entao pesquisei e encontrei este codigo que ajuda nesse campo.

asp:Panel ID="pnl1" runat="server" defaultbutton="Button1">
asp:Button ID="Button1" runat="server" Text="Button1" />
/asp:Panel>

Ok, mais uma coisa que nao sabia, sempre a aprender.....

Wednesday, July 26, 2006

Conexão de Base de dados por VBscript

Para fazer ligações a BD por ADODB em VBscript e simples depois de criar é o normal, como eu fazia em VB6...., :P .


Set OBJdbConnection = CreateObject("ADODB.Connection")
OBJdbConnection.Open "driver={SQL Server};server='server';uid=sa;pwd=;database=Northwind"
SQLQuery = "SELECT CompanyName, Country, Phone FROM dbo.Customers"
Set Result = OBJdbConnection.Execute(SQLQuery)
If Not Result.EOF Then
Do While Not Result.EOF
winmsgbox(Result("CompanyName"))
Result.MoveNext
Loop
End If
OBJdbConnection.Close

Listagem Active directory por vbscript

Pediram-me a uns dias para realizar uns comandos em vbscript a nivel de LDAP, entao começei a explorar e voilá, toca a fazer listagens.... Primeiro por comando, o segundo por um Query em ADODB.

Codigo:
1.
Set objADSystemInfo = CreateObject("ADSystemInfo")
'Utilizador que esta a utilizar
strUserDN = objADSystemInfo.UserName

Set objUser = GetObject("LDAP://" & strUserDN)
For Each strGroup in objUser.Groups
'Listagem dos grupos
winmsgbox(strGroup.Name)
Next
'Listagem do Email
winmsgbox(objUser.mail)

2.
Dim conn, cmd, rs, temp, ldapPath

ldapPath = "caminho"

Set conn = CreateObject("ADODB.Connection")
Set cmd = CreateObject("ADODB.Command")
conn.provider = "adsdsoobject"
conn.open "active directory provider"
cmd.activeconnection = conn
cmd.commandtext = ";(objectclass=computer);name,cn,distinguishedname;subtree"
Set rs = cmd.Execute
Do Until rs.eof
winmsgbox(rs.fields("name") & vbTab & rs.fields("cn") & vbTab & rs.fields("distinguishedname"))
rs.movenext
Loop

Wednesday, July 19, 2006

Editor de Texto FCKEditor em asp.net

Aqui se tem um editor de texto bastante util, a sua utilização e bastante simples.
1º É necessario fazer download do DLL a adicionar na toolbox do controls.
2. Adicionar na aplicação o package em Site.

Depois de estes dois aplicativos estarem inseridos podemos começar a trabalhar com o control.

Depois de inserir o control na pagina .aspx vamos ao source dele e temos que associar ao package metendo BasePath="../FCKeditor/", podemos tambem defenir skins para ter um aspecto mais office, por defeito ele ja trás 3 modelos, o do office é SkinPath="skins/office2003/", e o varivel para inserir texto não é text mas sim value.
Ok já esta pronto a ser utilizador.

Exemplo final:

FCKeditorV2:FCKeditor ID="FCKeditor1" Value="" SkinPath="skins/office2003/" runat="server" BasePath="../FCKeditor/"


Monday, July 17, 2006

Limitar internet a utilizadores da Active directory no windows 2003 server

Foi-me pedido para limitar a internet a um conjunto de utilizadores da active directory, entao começei a explorar o "Group policys" do Win2003 e pensei "vou ter que ter um grupo de utilizadores com politicas especiais de acesso a internet", onde defino o que esse conjunto de pessoas poderão aceder.
Entao criei este pequenito manual, rapido rapido para configurar esse grupo.

Configurar internet para alguns utilizadores na active directory no Servidor:

Software 2003 Busniess Server


'Group Policy Management;

- Botao direito na sede e selecionar "Create and link a GPO here..." Criar o nome exemplo "Internet Policy".

- Defenir a quem se destina "user ou groups".

- Botao direito em cima de "Internet Policy" e selecionar "Edit"

- ir a "user configuration-> windows settings->Internet Explorer Maintenance->Proxy Settings" em properties, defenir a proxy a ficar.
'se for utilizadores com acesso a internet mete-se a correcta, senao fica a errada para os que nao irão ter acesso

- aplicar definição.

'Bloquear Connections do internet Explorer

- Group Policy Management

- Botao direito em cima de "Internet Policy" e selecionar "Edit"

- ir a "user configuration-> Administrativa Templates->windows componentes->Internet Explorer->Internet Control Panel-> disable the connection Page"

- Meter Como Enable

O utilizador tem que fazer logoff e voltar a conectar para que as novas configurações fiquem registadas.
Ao abrir o internet explorer vao ao "Tools->Internet Option" e vão reparar que falta o tab das conexoes de rede, tá feito.... espero que tenha sido util.

Função para automatizar valores para control

Em vez de cada vez de ter que inicializar variaveis do tipo inteiro para control, uma pessoa pode criar um simples metodo que ira associar as variaveis inteiro, isto é bom para quem utiliza muitas variaveis de control e quando se pretende mudar paginas...

Protected Enum SearchType As Integer
NotSet = -1
valor = 0
valor1 = 1
End Enum

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Response.Write(SearchType.NotSet)
End Sub

Tuesday, July 04, 2006

Introdução automatica de Código

Há certas funções que uma pessoa precisa e como há tanta coisa para recordar e temos que pesquisar em projectos anteriores para os encontrar, o vb2005 tem uma função que ajuda nessas pequenas funções chamada "insert snippet".

Essas funçoes sao chamadas quando trabalhamos em code-behind, carrega-se no botao direito do rato e seleciona-se "insert snippet", ai teremos um conjunto de funçoes que nos convem utilizar.

Exemplo:

"insert snippet -> Data Types -> convert a string to a byte array" tendo como resultado:

Dim bytes As Byte() = System.Text.Encoding.Unicode.GetBytes("StringToConvert")

Monday, July 03, 2006

Manual de instalação de IPbrick

Estava eu a instalar o Ipbrick num pc qualquer e estava a ver na parte de tras da caixa do CD, olha... algo que pode ajudar... Manual

Criação de Trigger para distinguir fim de semana

A uns tempos atras foi defenido um tempo entre X e Y que inclui o mês inteiro, depois foi pedido para saber quanto dias realmente eram uteis, ou seja a ideia era mesmo pegar no sabado e domingo e esqueçer entao vim com este trigger em SQL server, eheh ajuda sempre....

/*CREATE TRIGGER validadata ON dbo.Agenda
FOR INSERT

AS
/*Na inserção dos dias da operação valida os dias Sabado e domingo nao inserindo*/
declare @DTI as datetime,@DTF as datetime, @codigo as int
select @codigo=AG_COD, @DTI=AG_DI,@DTF=AG_DF from inserted

DECLARE @days int, @dp int , @cnt int,@wkends as int,@tempo as datetime
set @wkends=0
set @cnt=0
set @days=datediff(d,@DTI,@DTF)
set @tempo=@DTI
while @cnt <=@days
begin
set @dp=datepart(dw,dateadd(dw,@cnt,@tempo))
/*1 e 7 é sabado e domingo respectivamente*/
if @dp=2 or @dp=3 or @dp=4 or @dp=5 or @dp=6
begin
set @wkends=@wkends+1
end
set @cnt=@cnt+1
End

Listagem das Fontes

Quando se formata um texto podemos escolher qual a formatação com que este irá ficar, mas como se chama essa função???? Simples atraves deste exemplo podemos listar todas as fontes que existem no pc.

imports system.drawning

Dim oneFontFamily As FontFamily
For Each oneFontFamily In FontFamily.Families
ListBox1.Items.Add(oneFontFamily.Name)
Next