Pular para o conteúdo principal

Postagens

Usando o Oracle II

Olá a todos, peço primeiramente desculpas a todos pela ausência e principalmente pela demora na continuidade de alguns assuntos, como o Oracle, o fato é que em novembro meu tempo ficou meio apertado devido a assuntos profissionais (ainda bem, fechamos o ano com muito trabalho) e pessoais (reservei parte do meu tempo livre para estudar SQL e PL/SQL para o exame de certificação da Prometric que no dia 17/12/2008 o fiz e passei). Desculpas a parte iremos retomar aqui a série “Usando o Oracle”, e no episódio de hoje mostraremos como manipular as informações (inserir, alterar, apagar e consultar).   SELECT Com o SELECT realizamos a seleção das informações, devemos informar as informações desejadas, de onde elas serão buscadas e, se for o caso, restringir, agrupar ou ordenar o resultado. Sintaxe: SELECT coluna_01, coluna_02 FROM       tebla_x WHERE   coluna_03 = 1; O SELECT tem como objetivo, projeção (escolha das colunas de uma tabela), seleção (restringir os registros a serem retornad

Google “paga eu”

Quando nosso espaço começa a receber um numero razoável de visitas vislumbramos a possibilidade de juntar o útil ao agradável, porque não ganhar uma grana escrevendo algo que nos agrada e que certamente ajudara alguém. Pois é, na internet a publicidade come solta e no meu caso a primeira medida tomada na tentativa de rentabilizar o blog foi o adsense. Tudo muito simples, muito fácil e rápido até o momento de receber, sim amigos, estou com uma quantia parada já a algum tempo e ainda nada, ainda sou recebido pela boa e velha frase “ Os seus pagamentos estão atualmente retidos. São necessárias algumas medidas para liberar o seu pagamento .” Ok, já perdi as contas de quantas vezes cliquei no maldito “ mais detalhes ” e a minha “ Medida necessária ” é sempre a mesma, o tal do PIN , não senhores eu não o inseri errado porque eu sequer recebi a tal correspondencia. Não resido em uma região inóspita ou desconhecida, haja visto que tenho recebido minhas correspondências normalmente, principalme

Texto na Diagonal usando o Canvas (Delphi)

var   lf : TLogFont;   tf : TFont; begin   with Form1.Canvas do     begin       Font.Name := 'Arial';       Font.Size := 24;       tf := TFont.Create;       tf.Assign(Font);       GetObject(tf.Handle, sizeof(lf), @lf);        lf.lfEscapement := 450;       lf.lfOrientation := 450;       tf.Handle := CreateFontIndirect(lf);       Font.Assign(tf);       tf.Free;       TextOut(20, Height div 2, 'Texto Diagonal!');    end; end;

Iniciar e Parar Serviços do Windows (Delphi)

Em certas ocasiões nos deparamos com a necessidade de manipular determinadas atividades do SO, como iniciar ou parar um banco de dados, ou qualquer outro serviço que esteja funcionando no momento. Segue abaixo um código que encontrei na Internet para tal finalidade (não me recordo à fonte, assim que eu a encontrar colocarei). Iniciar Serviço: uses WinSvc; // // start service // // return TRUE if successful // // sMachine: //   machine name, ie: \SERVER //   empty = local machine // // sService //   service name, ie: Alerter // function ServiceStart(   sMachine,   sService : string ) : boolean; var   //   // service control   // manager handle   schm,   //   // service handle   schs   : SC_Handle;   //   // service status   ss     : TServiceStatus;   //   // temp char pointer   psTemp : PChar;   //   // check point   dwChkP : DWord; begin   ss.dwCurrentState := -1;   //

Log de exceções não tratadas (Delphi)

Nem sempre é possível tornar nossa aplicação imune a todos os erros, sempre existe aquele que apenas o usuário conseguirá simular e na maioria das vezes você estará bem longe dali. Para não ficar apenas com a explicação do usuário, que muitas vezes e confusa e inconclusiva podemos criar uma maneira de ao menos rastrear os erros não controlados, isso mesmo podemos construir um "log" de erros, então vamos lá: Adicione em seu formulário principal o componente ApplicationEvents da aba Additional; No evento OnException entre com o seguinte código: var   vl_NomeDoLog : string;   vl_Arquivo   : TextFile; begin   vl_NomeDoLog := ChangeFileExt(Application.Exename, '.log');   AssignFile(vl_Arquivo, vl_NomeDoLog);    IF FileExists(vl_NomeDoLog) THEN     Append(vl_arquivo) { se existir, apenas adiciona linhas }    ELSE     ReWrite(vl_arquivo); { cria um novo se não existir }    TRY     WriteLn(vl_arquivo, 'APLICAÇÃO: ['+Screen.ActiveForm.Caption+'] DATA/HORA: ['+D

Open Hack Day

O Amigo Rodrigo Figueiredo comentou em meu ultimo post colocando um anuncio muito interessante sobre um evento que promete ser muito bom, para os que moram em São Paulo ou mesmo que tenham a possibilidade de ir até lá vale a pena conferir, segue abaixo uma matéria retirada do IDG Now falando sobre o evento. São Paulo - Evento que incentiva a criação de aplicativos e serviços com plataformas do Yahoo! premiará os projetos mais criativos. O Yahoo! promove, de 8 a 9 de novembro, o primeiro Open Hack Day na América Latina. O evento reunirá estudantes e profissionais de tecnologia para a criação de aplicativos e serviços com base nas plataformas da empresa. O encontro é a versão brasileira do evento que aconteceu em setembro, nos Estados Unidos, e reuniu mais de 300 desenvolvedores e entusiastas da área. O primeiro dia do Open Hack Day promove o ciclo de palestras “Tech Talks”, explicando o que será necessário para o desenvolvimento no dia seguinte. Os projetos criados pelos part

Função INSTR do Oracle no Delphi

O Oracle possui uma função chamada INSTR(), ela procura por ocorrências de uma determinada palavra dentro de outra, começando de uma determinada posição, e retorna o índice quando encontrado. Ex.: SELECT INSTR ('EDUARDO TEIXEIRA','ER', 1, 2) "Teste com INSTR" FROM DUAL; Teste com INSTR ---------- 13 No exemplo acima a busca começa no primeiro caracter da frase 'EDUARDO TEIXEIRA' e procura pelo índice da segunda ocorrência da palavra 'ER', e o resultado foi a 13º posição. Existe algo parecido no Delphi, é a função POEX, porém ela não trata ocorrências, trazendo sempre o índice da primeira encontrada, então ai vai uma função para o Delphi que faz o mesmo que o INSTR do Oracle: function INSTR_Delphi(p_busca: string; p_buscado: string; p_inicio: integer; p_incidencia: integer): integer; var v_posi : integer; //guarda última posição encontrada v_inc : integer;   //incidências já encontradas v_i : integer;       //contador para loop b