Jump to content
Fórum Script Brasil

Cristiano Lagame

Membros
  • Posts

    10
  • Joined

  • Last visited

About Cristiano Lagame

Cristiano Lagame's Achievements

0

Reputation

  1. Olá gente! Não sei se teria diferença em outros banco de dados, como MySQL ou MS SQL, mas a base que eu uso é DB2. Estou com uma dúvida boba, não sei como montar uma query que retorne somente os registros que tenham o valor mais alto (NUM_VERSAO_CORRENTE) de cada tipo de documento (COD_TIPO_DOCUMENTO). A query que montei é esta: select distinct qual.COD_TIPO_DOCUMENTO as COD, qual.NUM_VERSAO_CORRENTE as NUM from QDOCVERSAO ver inner join QDOCQUALID qual on ver.COD_TIPO_DOCUMENTO=qual.COD_TIPO_DOCUMENTO and ver.NUM_VERSAO = qual.NUM_VERSAO_CORRENTE order by qual.COD_TIPO_DOCUMENTO,qual.NUM_VERSAO_CORRENTE desc Ela retorna isto: Preciso que retorne isso: Alguém saberia me ajudar?
  2. Jonah, (posso te chamar assim?) Eu (infelizmente) não tive tempo hábil para pesquisar sobre isso, pois era pra entregar hoje esse algoritmo, já consegui terminar, só não está aqui, tá no trampo, amanhã eu mando.
  3. Victor, eu ainda não sei como seria, pois estou tentando fazer também, se alguém souber como faz, por favor avise, um carinha me passou esse código, mas ele não tá trazendo os resultados esperados: h = 0; for (i=0; i<5; i++) { for (j=0; j<5; j++) { if (R[i] == Y[j]) { break;//encontrou, vamos ao proximo } } // se j percorreu o vetor todo é porque não encontrou, logo guardamos if(j == 5) { Z[h++] = R[i]; } }
  4. Estou fazendo o mesmo código aqui, e já resolvi a primeira parte, segue: #include <stdio.h> #include <conio.h> int main(void) { int i,j,k,h=0; int R[5],S[10],Y[15],Z[15]; for (i=0; i<4; i++) { printf("Entre com o %i elemento do vetor R: ", i+1); scanf("%i",&R[i]); } for (j=0; j<10; j++) { printf("Entre com o %i elemento do vetor S: ", j+1); scanf("%i",&S[j]); } for (i=0; i<5; i++) { for (j=0; j<10; j++) { if (R[i] == S[j]) { Y[h] = S[j]; h++; } } } k=h; for (h=0; h<k; h++) printf("\n%i",Y[h]); } Mas a segunda parte tá me deixando de cabelo em pé, já virei noite tentando fazer, mas não consigo, alguém pode me ajudar?
  5. Katukness, desisto, era só um aprimoramento... para pegar um valor numa session que é gerada no outro sistema... uma pena... Mas valeu Bareta!
  6. Estou tentando recuperar a session num site, mas essa session foi iniciada em outro site meu que está num domínio, tipo assim: Session do site 1: <% Session("id") = id %> Recuperar Session no site 2: <% id = Session("id") %> Testei aqui e não funcionou, alguém sabe dizer porque? Tem alguma solução? Preciso que seja feito via Session, pois trabalho num setor da minha empresa que não tem acesso direto para alterações no sistema que está em outro domínio. Para não ficar enchendo o saco do desenvolvimento, preciso pegar esse valor sem que eles tenha que mudar nada no código deles.
  7. Cara, funcionou muito bem, parabéns! Só acho que quem for meio leigo, ficará a ver navios pra tentar botar pra funcionar... caso tenham dificuldade peguem dica nesse artigo também: http://www.imasters.com.br/artigo/4723/aja...ox_usando_ajax/
  8. Fala! Valeu por responder, eu consegui resolver de outro jeito, não gosto de trabalhar com sessions porque elas expiram, eu fiz da seguinte forma, fiz o formulário normal enviando os request.form para uma segunda tela na qual tem o campo hidden recuperando o campo do formulario anterior, e o compo do tipo file para fazer o upload. Dessa forma eu envio a foto com o número do CPF da pessoa caso ela queira enviar uma foto, já que não é obrigatório o envio. Ficou então 3 arquivos, o formulário inicial, o secundário no qual tem somente 1 campo visível que é o do file e há neste formulário um campo escondido capturando o cpf do formulário anterior e quando se envia o formulário ele vai para o terceiro arquivo que envia a foto para o servidor com o código do cpf do candidato. Dessa forma consegui pegar os checkboxes normalmente, pois não estou mais usando o mesmo formulário para o envio da foto: Dim item For Each item in request.form("area") Corpo = Corpo & "<strong>"&item&"</strong><br>"&VBCRlf Next
  9. Eu estou com um problema sinistro que não consigo resolver, eu tenho um esquema de upload de imagem sem componente via filesystem, é um formulário de envio de currículo e tem vários campos, dentre eles há alguns checkboxes e só consigo pegar o valor do primeiro checkbox que for marcado. Li em diversos sites, inclusive em francês que é possível coletar todos os checkboxes marcados, mas o código é muito difícil de entender e não consigo descobrir como funciona, alguém pode me ajudar? Com o código que peguei do site francês que alega que consegue catar os valores do checkbox eu consigo fazer o upload mas não sei o básico que é pegar o valor do campo do checkbox, só do campo do arquivo de upload. Arquivo Form.asp <%@LANGUAGE="VBSCRIPT"%> <!--#include file="upload.asp" --> <% Compteur = Request.TotalBytes ' si on a cliqué sur le bouton "Importer le Arquivo" if Compteur<>0 then If Request.ServerVariables("REQUEST_METHOD") = "POST" Then Set Campos = GetUpload() FilePath = "F:\Web$\site\oportunidades\anexos\" & Campos("Arquivo_base").FileName response.write "chemin : "&FilePath&"<br>" response.write Campos("area").FileName 'response.end Campos("Arquivo_base").Value.SaveAs FilePath End IF end if %> <html> <head> <title>Mon Site</title> </head> <BODY background="Images/fond.gif" leftmargin="0" topmargin=0 text="#000000" scroll="NO"> <table border="0" width="100%" height="100%" class="black10" bordercolor="#6B5354" cellspacing="0" cellpadding="0"> <Form name="Form_upload" enctype="multipart/form-data" ACTION="?" METHOD="POST"> <tr> <td width=9 nowrap background="Images/latcotegauche.gif"> </td> <td> </td> <td width="100%" class="black12" align="center"> <p>Réintégrer le Arquivo sur le serveur : <input type="file" name="Arquivo_base"> </p> <p>Campo1: <label> <input name="area" type="checkbox" id="area" value="1"> </label> <input name="area" type="checkbox" id="area" value="2"> </p></td> <td width="11" nowrap background="Images/latcotedroit.gif"> </td> </tr> <tr> <td width=9 background="Images/latcotegauche.gif"> </td> <td> </td> <td height="20"></td> <td width="11" nowrap background="Images/latcotedroit.gif"> </td> </tr> <tr valign="top"> <td width=9 nowrap background="Images/latcotegauche.gif"> </td> <td> </td> <td width="100%" class="black12" align="center"> <input type="submit" class="black12" name="Importer" value="Importer le Arquivo"> </td> <td width="11" nowrap background="Images/latcotedroit.gif"> </td> </tr> </form> </table> </body> </html> Arquivo upload.asp <script RUNAT=SERVER LANGUAGE=VBSCRIPT> Const IncludeType = 2 'Vous pouvez utiliser ce composant d'upload pour : ' 1. Uploader de petits Arquivos sur le serveur (sauvegarde via les FileSystem object) ' 2. Uploader des Arquivos binaires/texte de n'importe quelle taille sur une base de données serveur (RS("BinField") = Upload("FormField").Value) 'restriction de la taille de l'upload Dim UploadSizeLimit '********************************** Méthode GetUpload ********************************** 'Cette fonction lit les champs de formulaires en entrée binaire et les renvoie en tant qu'objet du dictionnaire. Function GetUpload() Dim Result Set Result = Nothing If Request.ServerVariables("REQUEST_METHOD") = "POST" Then 'la méthode REQUEST doit être POST Dim CT, PosB, Boundary, Length, PosE CT = Request.ServerVariables("HTTP_Content_Type") ' lit le header If LCase(Left(CT,19)) = "multipart/form-data" Then 'qui doit être de type "multipart/form-data" PosB = InStr(LCase(CT), "boundary=") 'Finds boundary If PosB > 0 Then Boundary = Mid(CT, PosB + 9) 'Separetes boundary '****** Erreur sur IE5.01 - doublement des entêtes http PosB = InStr(LCase(CT), "boundary=") If PosB > 0 then 'Patch pour l'erreur IE PosB = InStr(Boundary, ",") If PosB > 0 Then Boundary = Left(Boundary, PosB - 1) end if '****** Erreur sur IE5.01 - doublement des entêtes http Length = CLng(Request.ServerVariables("HTTP_Content_Length")) If "" & UploadSizeLimit <> "" Then UploadSizeLimit = CLng(UploadSizeLimit) If Length > UploadSizeLimit Then Request.BinaryRead (Length) Err.Raise 2, "GetUpload", "Upload size " & FormatNumber(Length, 0) & "B exceeds limit of " & FormatNumber(UploadSizeLimit, 0) & "B" Exit Function End If End If If Length > 0 And Boundary <> "" Then Boundary = "--" & Boundary Dim Head, Binary Binary = Request.BinaryRead(Length) 'lit les données à partir du poste client Set Result = SeparateCampos(Binary, Boundary) Binary = Empty 'Mise à jour des variables Else Err.Raise 10, "GetUpload", "longueur nulle ." End If Else Err.Raise 11, "GetUpload", "Pas de Arquivo joint." End If Else Err.Raise 1, "GetUpload", "Mauvaise méthode de request." End If Set GetUpload = Result End Function '********************************** SeparateCampos ********************************** Function SeparateCampos(Binary, Boundary) Dim PosOpenBoundary, PosCloseBoundary, PosEndOfHeader, isLastBoundary Dim Campos Boundary = StringToBinary(Boundary) PosOpenBoundary = InStrB(Binary, Boundary) PosCloseBoundary = InStrB(PosOpenBoundary + LenB(Boundary), Binary, Boundary, 0) Set Campos = CreateObject("Scripting.Dictionary") Do While (PosOpenBoundary > 0 And PosCloseBoundary > 0 And Not isLastBoundary) 'Entête et Arquivo source Dim HeaderContent, FieldContent, bFieldContent 'entêtes Dim Content_Disposition, FormFieldName, SourceFileName, Content_Type 'variable Dim Field, TwoCharsAfterEndBoundary 'Fin de l'entête PosEndOfHeader = InStrB(PosOpenBoundary + Len(Boundary), Binary, StringToBinary(vbCrLf + vbCrLf)) 'Séparation des champs de l'entêter HeaderContent = MidB(Binary, PosOpenBoundary + LenB(Boundary) + 2, PosEndOfHeader - PosOpenBoundary - LenB(Boundary) - 2) 'séparation du contenu bFieldContent = MidB(Binary, (PosEndOfHeader + 4), PosCloseBoundary - (PosEndOfHeader + 4) - 2) 'séparation des champs d'entête de l'entêter GetHeadCampos BinaryToString(HeaderContent), Content_Disposition, FormFieldName, SourceFileName, Content_Type 'Creation d'un champs et attribution des paramètres Set Field = CreateUploadField()'See the JS function bellow Set FieldContent = CreateBinaryData(bFieldContent,LenB(bFieldContent)) ' FieldContent.ByteArray = bFieldContent ' FieldContent.Length = LenB(bFieldContent) Field.Name = FormFieldName Field.ContentDisposition = Content_Disposition Field.FilePath = SourceFileName Field.FileName = GetFileName(SourceFileName) Field.ContentType = Content_Type Field.Length = FieldContent.Length Set Field.Value = FieldContent ' response.write "<br>:" & FormFieldName Campos.Add FormFieldName, Field 'Dernière borne ? TwoCharsAfterEndBoundary = BinaryToString(MidB(Binary, PosCloseBoundary + LenB(Boundary), 2)) isLastBoundary = TwoCharsAfterEndBoundary = "--" If Not isLastBoundary Then 'Putain!!! Pas la dernière... on avance jusqu'au champ suivant. PosOpenBoundary = PosCloseBoundary PosCloseBoundary = InStrB(PosOpenBoundary + LenB(Boundary), Binary, Boundary) End If Loop Set SeparateCampos = Campos End Function '********************************** Utilities ********************************** 'Separation des champs d'entête de l'entête uploadé Function GetHeadCampos(ByVal Head, Content_Disposition, Name, FileName, Content_Type) Content_Disposition = LTrim(SeparateField(Head, "content-disposition:", ";")) Name = (SeparateField(Head, "name=", ";")) 'ltrim If Left(Name, 1) = """" Then Name = Mid(Name, 2, Len(Name) - 2) FileName = (SeparateField(Head, "filename=", ";")) 'ltrim If Left(FileName, 1) = """" Then FileName = Mid(FileName, 2, Len(FileName) - 2) Content_Type = LTrim(SeparateField(Head, "content-type:", ";")) End Function 'Separation du champ entre sStart et sEnd Function SeparateField(From, ByVal sStart, ByVal sEnd) Dim PosB, PosE, sFrom sFrom = LCase(From) PosB = InStr(sFrom, sStart) If PosB > 0 Then PosB = PosB + Len(sStart) PosE = InStr(PosB, sFrom, sEnd) If PosE = 0 Then PosE = InStr(PosB, sFrom, vbCrLf) If PosE = 0 Then PosE = Len(sFrom) + 1 SeparateField = Mid(From, PosB, PosE - PosB) Else SeparateField = Empty End If End Function 'Separation du nom de Arquivo du chemin Function GetFileName(FullPath) Dim Pos, PosF PosF = 0 For Pos = Len(FullPath) To 1 Step -1 Select Case Mid(FullPath, Pos, 1) Case "/", "\": PosF = Pos + 1: Pos = 0 End Select Next If PosF = 0 Then PosF = 1 GetFileName = Mid(FullPath, PosF) End Function Function BinaryToStringSimple(Binary) Dim I, S For I = 1 To LenB(Binary) S = S & Chr(AscB(MidB(Binary, I, 1))) Next BinaryToStringSimple = S End Function Function BinaryToString(Binary) ' BinaryToString = RSBinaryToString(Binary) ' Exit Function dim cl1, cl2, cl3, pl1, pl2, pl3 Dim L', nullchar cl1 = 1 cl2 = 1 cl3 = 1 L = LenB(Binary) Do While cl1<=L pl3 = pl3 & Chr(AscB(MidB(Binary,cl1,1))) cl1 = cl1 + 1 cl3 = cl3 + 1 if cl3>300 then pl2 = pl2 & pl3 pl3 = "" cl3 = 1 cl2 = cl2 + 1 if cl2>200 then pl1 = pl1 & pl2 pl2 = "" cl2 = 1 End If End If Loop BinaryToString = pl1 & pl2 & pl3 End Function Function RSBinaryToString(xBinary) Dim Binary if vartype(xBinary)=8 then Binary = MultiByteToBinary(xBinary) else Binary = xBinary Dim RS, LBinary Const adLongVarChar = 201 Set RS = CreateObject("ADODB.Recordset") LBinary = LenB(Binary) if LBinary>0 then RS.Campos.Append "mBinary", adLongVarChar, LBinary RS.Open RS.AddNew RS("mBinary").AppendChunk Binary RS.Update RSBinaryToString = RS("mBinary") Else RSBinaryToString = "" End If End Function Function MultiByteToBinary(MultiByte) Dim RS, LMultiByte, Binary Const adLongVarBinary = 205 Set RS = CreateObject("ADODB.Recordset") LMultiByte = LenB(MultiByte) if LMultiByte>0 then RS.Campos.Append "mBinary", adLongVarBinary, LMultiByte RS.Open RS.AddNew RS("mBinary").AppendChunk MultiByte & ChrB(0) RS.Update Binary = RS("mBinary").GetChunk(LMultiByte) End If MultiByteToBinary = Binary End Function Function StringToBinary(String) Dim I, B For I=1 to len(String) B = B & ChrB(Asc(Mid(String,I,1))) Next StringToBinary = B End Function Function vbsSaveAs(FileName, ByteArray) Dim FS, TextStream Set FS = CreateObject("Scripting.FileSystemObject") Set TextStream = FS.CreateTextFile(FileName) TextStream.Write BinaryToString(ByteArray) ' BinaryToString is in upload.inc. TextStream.Close End Function </SCRIPT> <script RUNAT=SERVER LANGUAGE=JSCRIPT> function CreateUploadField(){ return new uf_Init() } function uf_Init(){ this.Name = null this.ContentDisposition = null this.FileName = null this.FilePath = null this.ContentType = null this.Value = null this.Length = null } function CreateBinaryData(Binary, mLength){ return new bin_Init(Binary, mLength) } function bin_Init(Binary, mLength){ this.ByteArray = Binary this.Length = mLength this.String = BinaryToString(Binary) this.SaveAs = jsSaveAs } //function jsBinaryToString(){ // return BinaryToString(this.ByteArray) //}; function jsSaveAs(FileName){ return vbsSaveAs(FileName, this.ByteArray) } //Simulate ByteArray class by JS/VBS - end </SCRIPT> Eu tento pegar o valor assim: response.write Campos("area").FileName Mas dá este erro: Microsoft VBScript runtime (0x800A01C9) This key is already associated with an element of this collection /site/oportunidades/anexos/upload.asp, line 108 Estas são as linhas 107 e 108: ' response.write "<br>:" & FormFieldName Campos.Add FormFieldName, Field Já tentei várias paradas, achei este exemplo na internet mas ele só funciona num formulário comum: <% For Each descricao in Request.Form("area") response.write ""&descricao&"<br>" Next %> Please amigos, me ajudem!
  10. Eu estou com um problema parecido mas isso não resolveu, eu tenho um esquema de upload de componente, é um formulário de envio de currículo e tem vários campos, destre eles há alguns checkboxes e só consigo pegar o valor do primeiro checkbox que for marcado. Li em diversos sites, inclusive em francês que é possível coletar todos os checkboxes, mas o código é muito difícil de entender e nem consigo descobrir como funciona, alguém pode me ajudar?
×
×
  • Create New...