Ir para conteúdo
Fórum Script Brasil

Jhonas

Monitores
  • Total de itens

    9.657
  • Registro em

Tudo que Jhonas postou

  1. Dica de Aldus ( Mario ) Trata-se de uma função que estou usando e tem se mostrado eficiente para o meu propósito, portanto, podem adequar as suas necessidades. Utilizo em Fire 1.5 Chamada da Função: Código: ComparaEstruturas('TABELAORIGEM','TABELADESTINO' ); Código: procedure TfDadosGuarda.ComparaEstruturas(vOrigem, vDestino: string); var TrsAB: Ttransactiondesc; vCampoTipo,vCampoTipoD,vOrigemCampo: string; vCampoDec,vCampoTam: integer; vCampoExiste,vTabelaExiste,vPrimeiraExecucao: boolean; begin lblAndamento.caption := 'Comparando estrutura do arquivo: '+LowerCase(vOrigem); Application.ProcessMessages; // Select Campos de Origem dm.cds_aux1.close; dm.sql_aux1.commandText := 'SELECT A.RDB$FIELD_NAME CAMPO,'+ ' C.RDB$TYPE_NAME TIPO,'+ ' B.RDB$FIELD_LENGTH TAMANHO,'+ ' B.RDB$FIELD_SCALE DECIMAIS,'+ ' B.RDB$FIELD_PRECISION AS TAMDEC '+ 'FROM RDB$RELATION_FIELDS A,'+ ' RDB$FIELDS B,'+ ' RDB$TYPES C '+ 'WHERE (A.RDB$RELATION_NAME = '''+vOrigem+''') AND '+ ' (B.RDB$FIELD_NAME = A.RDB$FIELD_SOURCE) AND '+ ' (C.RDB$TYPE = B.RDB$FIELD_TYPE) AND '+ ' (C.RDB$FIELD_NAME = ''RDB$FIELD_TYPE'') '+ 'ORDER BY RDB$FIELD_POSITION'; dm.cds_aux1.open; // Select Campos de Destino dm.cds_aux2.close; dm.sql_aux2.commandText := 'SELECT A.RDB$FIELD_NAME CAMPO,'+ ' C.RDB$TYPE_NAME TIPO,'+ ' B.RDB$FIELD_LENGTH TAMANHO,'+ ' B.RDB$FIELD_SUB_TYPE DECIMAIS '+ 'FROM RDB$RELATION_FIELDS A,'+ ' RDB$FIELDS B,'+ ' RDB$TYPES C '+ 'WHERE (A.RDB$RELATION_NAME = '''+vDestino+''') AND '+ ' (B.RDB$FIELD_NAME = A.RDB$FIELD_SOURCE) AND '+ ' (C.RDB$TYPE = B.RDB$FIELD_TYPE) AND '+ ' (C.RDB$FIELD_NAME = ''RDB$FIELD_TYPE'') '+ 'ORDER BY RDB$FIELD_POSITION'; dm.cds_aux2.open; vTabelaExiste := (not dm.cds_aux2.Eof); vPrimeiraExecucao := True; with dm.cds_aux1 do begin prog.Max := RecordCount; while not eof do begin prog.Position := RecNo; Application.ProcessMessages; vOrigemCampo := Trim(fieldbyname('campo').asstring); vCampoExiste := False; dm.cds_aux2.first; while not dm.cds_aux2.eof do begin if Trim(dm.cds_aux2.fieldbyname('CAMPO').asstring) = vOrigemCampo then begin vCampoExiste := True; Break; end; dm.cds_aux2.next; end; if not vCampoExiste then begin vCampoTipo := Trim(fieldbyname('TIPO').asstring); if fieldbyname('DECIMAIS').asinteger = 0 then vCampoDec := 0 else vCampoDec := (fieldbyname('DECIMAIS').asinteger*-1); vCampoTam := fieldbyname('TAMANHO').asinteger; if (vCampoTipo = 'LONG') AND (vCampoDec = 0) then vCampoTipoD := 'INTEGER' else if vCampoTipo = 'BLOB' then vCampoTipoD := 'BLOB SUB_TYPE 1' else if vCampoTipo = 'VARYING' then vCampoTipoD := 'VARCHAR('+IntToStr(vCampoTam)+') character set WIN1252 collate WIN_PTBR' else if vCampoTipo = 'DATE' then vCampoTipoD := 'DDATA' else if ((vCampoTipo = 'LONG') OR (vCampoTipo = 'INT64')) AND (vCampoDec > 0) then vCampoTipoD := 'DECIMAL('+IntToStr(fieldbyname('TAMDEC').asinteger)+','+IntToStr(vCampoDec)+')'; try TrsAB.TransactionID := 21; TrsAB.IsolationLevel := xilReadCommitted; dm.Conexao.StartTransaction(TrsAB); if not vTabelaExiste and vPrimeiraExecucao then dm.conexao.ExecuteDirect('CREATE TABLE '+vDestino+' ('+vOrigemCampo+' '+vCampoTipoD+')') else dm.conexao.ExecuteDirect('ALTER TABLE '+vDestino+' ADD '+vOrigemCampo+' '+vCampoTipoD); dm.Conexao.Commit(TrsAB); except dm.Conexao.RollBack(TrsAB); end; vPrimeiraExecucao := False; end; next; end; end; end; abraço
  2. Veja neste endereço http://search.vivastreet.com.br/treinament...&end_field= abraço
  3. Jhonas

    Storage

    Na empresa que trabalhei por uns 15 anos usa este sistema http://www.starwindsoftware.com/starwind-server-iscsi-san abraço
  4. Stanley .... acrescente uma variavel tipo integer e 2 ToolButton no código do exemplo do delphi C:\Arquivos de programas\Borland\Delphi5\Demos\Coolstuf var MainForm: TMainForm; foto : integer = 0; implementation ////// procedure TMainForm.ToolButton1Click(Sender: TObject); begin foto := foto - 1; if foto < 1 then begin URLs.Text := 'http://www.gtamind.com.br/sanandreas/paginas/mapas/se/mapas/fotos/1.JPG'; FindAddress; end else begin URLs.Text := 'http://www.gtamind.com.br/sanandreas/paginas/mapas/se/mapas/fotos/' + inttostr(foto)+'.JPG'; FindAddress; end; end; procedure TMainForm.ToolButton2Click(Sender: TObject); begin foto := foto + 1; if (foto > 0) and (foto < 50) then begin URLs.Text := 'http://www.gtamind.com.br/sanandreas/paginas/mapas/se/mapas/fotos/' + inttostr(foto)+'.JPG'; FindAddress; end; end; abraço
  5. Entendi o que quer ... assim que tiver tempo passo um exemplo para voce usando o componente WebBrowser ou veja o exemplo do delphi ... é só fazer algumas modificações no código C:\Arquivos de programas\Borland\Delphi5\Demos\Coolstuf abraço
  6. Amigo ... como voce não postou o seu código, não dá nem prá imaginar do jeito que voce fez ... dessa maneira fica dificil alguém te ajudar abraço
  7. Voce já leu os artigos dos links ??? http://scriptbrasil.com.br/forum/index.php...st&p=537311 http://www.mail-archive.com/delphi-br@yaho...r/msg37457.html abraço
  8. Leia os links que te passei.... Vai econtrar a resposta usando o QRGroup ou pesquise no forum .. já tem algo parecido com a sua dúvida e já resolvido abraço
  9. No delphi não existe macro para substituir palavras, mas existe o comando findreplace para procurar e substituir strings http://scriptbrasil.com.br/forum/index.php...st&p=533469 Veja se não é isto que está querendo http://www.ramosdainformatica.com.br/art_r...s01.php?CDA=139 abraço
  10. Jhonas

    DSN

    exemplos: http://www.blueclaw-db.com/website_databas...s_sqlserver.htm http://www.blueclaw-db.com/website_databas...pages_dsn_a.htm http://www.macoratti.net/dsn_acc.htm http://www.criarweb.com/faq/que-e-dsn.html http://livedocs.adobe.com/dreamweaver/8/us...le=28_conn5.htm abraço
  11. Hi... disable your firewall and try to use the messenger... if to work you should review the configurations of the your firewall hug
  12. Jhonas

    DSN

    Veja nestes endereços: http://support.microsoft.com/kb/323380/pt-br http://support.microsoft.com/kb/814591/pt-br http://www.microsoft.com/brasil/windowsxp/...nfig_tcpip.mspx http://www.juliobattisti.com.br/artigos/wi...s/tcpip_p27.asp abraço
  13. See in this address http://www.google.com.br/search?hl=pt-BR&a...+games+download hug
  14. Jhonas

    winrar com senha

    Use este programa http://zorex.info/download.php?fname=winrar_unlock.zip abraço
  15. Seu professor quer que voces façam pesquisa, e pesquisando aprendam o porque das coisas No primeiro endereço esta mais do que mastigado ... basta adptar ao sistema que esta montando http://www.di.ubi.pt/cursos/licenciaturas/...i/chapter10.pdf http://www.di.ubi.pt/cursos/posgraduacao/c...ebenta_cap5.pdf http://www.luis.blog.br/modelagem-de-dados...o-e-fisico.aspx http://imasters.uol.com.br/artigo/6800/ban..._modelo_logico/ http://www.devmedia.com.br/articles/viewcomp.asp?comp=7873 (Minha nota depende disso, e não é por falta de pesquisa que não consigo) OBS: Vi que voce postou em outros foruns a mesma dúvida .. bem acho que com este material voce conseguirá ter idéia de como começar. abraço
  16. Jhonas

    Storage

    O QUE É STORAGE ? Storage significa a gravação de dados num suporte electromagnético de forma a que estes dados possam ser acedidos por um computador processador. Storage primário são dados armazenados em RAM (Random Access Memory) ou outros dispositivos que sejam parte integrante da máquina. Storage secundário são dados armazenados em discos rígidos, cassetes ( Fitas ) e outros dispositivos externos. O Storage primário é de muito maior rapidez de acesso que o Storage secundário devido à proximidade dos dispositivos internos e devido ainda à natureza deste tipo de dispositivos. O Storage secundário é caracterizado por armazenar um volume de dados muito superior do que os dispositivos do Storage primário. Além do RAM, o Storage primário ainda inclui a memória ROM (Read Only Memory) e a memória de cache L1 e L2. Para além dos discos rígidos, o Storage secundário inclui ainda um leque de dispositivos e tecnologias como disquetes, Zip Drives, RAID (Reduntant Array of Independent Disks – é uma forma de armazenar dados em lugares diferentes, isto é, redundantes e em discos rígidos múltiplos. É uma forma de minorar os riscos para os dados que podem advir de quebras do sistema) e armazenamento holográfico. Informações mais completas http://www.ibm.com/br/products/storage/ http://www.ibm.com/br/products/storage/nas/index.phtml http://www.storagesystem.com.br/portugues/principal.asp http://www.csfs.com.br/ http://welcome.hp.com/country/us/en/prodserv/storage.html http://www.google.com.br/search?hl=pt-BR&a...vision&cd=1 abraço
  17. Jhonas

    duvida sobre timer

    use no timer um comando desse para cada intervalo entre uma função e outra sleep(3000) // pausa de 3 segundos abraço
  18. No seu computador fica certo em virtude da configuração da sua tela.... em outro micro que não estaja com a mesma configuração os componentes ficam fora de posição. PageControl1.Left := 0; PageControl1.Top := 864; PageControl1.Width := 1271; Self.Top := 0; Self.Left := 0; Height := 560; Width := 800; voce deve fazer redimensionamento automatico para o seu programa, independentemente da configuração de tela do usuário. eu mantenho uma configuração de tela 800 X 600 para o meu programa, não importando que configuração de tela esteja definida no micro. exemplo: http://scriptbrasil.com.br/forum/index.php...st&p=528172 abraço
  19. exemplo: http://www.activedelphi.com.br/print.php?sid=427 https://www.scriptbrasil.com.br/download/apostila/544/ http://www.inf.ufsc.br/~prass/apostilas/quickreport.zip http://forum.imasters.uol.com.br/index.php...s-relacionadas/ abraço
  20. Experimente o delphi 2010 tem as mesmas funcionalidadades do delphi 2007 https://downloads.embarcadero.com/free/delphi abraço
  21. Os campos Boolean foram inseridos no Interbase apartir da versão 7.1, porém para as versões anteriores do Interbase podemos criar Domains para resolver este problema Exemplos: 1: CREATE DOMAIN TIPO_BOOLEAN AS CHAR(1) DEFAULT 'N' NOT NULL CHECK (VALUE IN ('S','N')); Onde 'S' representa true e 'N' false. 2: CREATE DOMAIN BOOLEAN AS CHAR(1) CHARACTER SET WIN1252 COLLATE WIN1252 3: CREATE DOMAIN T_BOOLEAN_INT CREATE DOMAIN T_BOOLEAN_INT AS SMALLINT AS SMALLINT DEFAULT 0 DEFAULT 0 NOT NULL NOT NULL CHECK (VALUE IN (0,1)) CHECK (VALUE IN (0,1)) Esse domínio deve ser necessariamente um tipo smallint ou tipo inteiro, que permite que dois valores possíveis "0" e "1" e contém a palavra "boolean" em seu nome. 4: CREATE DOMAIN T_BOOLEAN_CHAR CREATE DOMAIN T_BOOLEAN_CHAR AS CHAR(1) AS CHAR (1) DEFAULT 'F' F 'default' NOT NULL NOT NULL CHECK (VALUE IN ('T', 'F')) CHECK (VALUE IN ( 'T', 'F')) Campos criados com estes domínios são considerados booleanos e com a ajuda de componentes visuais são mostrados para os usuários. Em especial se estiver usando TDBCheckBox você pode mostrar as propriedades, tais como ValueChecked: = 'T' e ValueUnchecked: = 'F'. Neste caso, o componente irá se comportar como um campo boolean real. A unica mudança no código seria esta procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); Const CtrlState : array[Boolean] of Integer = (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED); var CheckBoxRectangle : TRect; begin if (Column.Field.FieldName = 'TESTE') then // mudança no código begin Self.DBGrid1.Canvas.FillRect(Rect); CheckBoxRectangle.Left := Rect.Left + 2; CheckBoxRectangle.Right := Rect.Right - 2; CheckBoxRectangle.Top := Rect.Top + 2; CheckBoxRectangle.Bottom := Rect.Bottom - 2; DrawFrameControl(Self.DBGrid1.Canvas.Handle, CheckBoxRectangle, DFC_BUTTON, CtrlState[Column.Field.AsBoolean]); end; end; OBS: O campo TESTE foi criado como Char de 1 posição e neste caso só aceita 'F' false ou 'T' true O Paradox aceita campos do tipo Logical 'L' abraço
  22. Mensagem : Não pode iniciar sua aplicação. O arquivo de informação Workgroup está faltando ou abriu exclusivamente para outro usuário ". Não encontrou a instalação do ISAM http://support.microsoft.com/kb/269490/pt http://www.alpes-software.com/realisam/ http://www.easysoft.com/products/data_acce...bc_isam_driver/ Outras fontes de consulta http://www.ramosdainformatica.com.br/art_r...es01.php?CDA=82 http://www.forumweb.com.br/foruns/index.ph...tabelas-access/ http://www.activedelphi.com.br/print.php?sid=154 http://www.forumweb.com.br/foruns/index.ph...ost&p=54805 http://www.ramosdainformatica.com.br/art_r...s01.php?CDA=257 abraço
  23. Veja que para visualizar o relatório na primeira vez, voce fez a pesquisa .. mas ao fechar o relatório voce limpou a memoria. Então é necessario fazer novamente a pesquisa para depois visualizar o relatório novamente, caso contrário, não terá registro nenhum nele. abraço
  24. Voce não postou o erro .. fica dificil te ajudar Provavelmente é erro de WinSkinData.dcu que não deve ter achado na pasta LIB do delphi, procure o arquivo e copie para a pasta LIB do delphi abraço
  25. estou desenvolvendo uma aplicaçao para quando uma certa tecla é aperta ele gere mais 2 ou tres... Voce está desenvolvendo em delphi ??? Veja estes endereços: http://guitarage.forumativo.com/tudo-sobre...oystick-t20.htm http://www.oneswitch.org.uk/2/I/JoyToKey/JoyToKey.htm http://www.cheatsbrasil.com/local/grand-ch...nho-t79405.html http://www.youtube.com/watch?v=0IeOttEe3Eo http://wareseeker.com/System/joytokey-3.7.9.zip/356591 http://rapidlibrary.com/index.php?q=joytok...3&filetype= http://www.cheatsbrasil.com/local/index.ph...t&p=1020294 abraço
×
×
  • Criar Novo...