Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

hargon

FLEX + ASP + MySQL

Recommended Posts

Flex Builder 2 e Classic ASP 3,0 Exemplo

Por a1plusok

 

Onde eu vou partir

 

Não é interessante como algumas pessoas se totalmente apanhadas em tecnologias específicas e, em seguida, passar o resto de suas vidas (ou pelo menos alguns bons anos) em desenvolvimento nada mais do que o conjunto específico de "linguagens IDE + + + API servidor arquitetura + plataforma de entrega "?

 

Se você foi ao redor do bloco um par de vezes, e se você está desenvolvendo software e aplicações web há algum tempo, você provavelmente sabe do que algumas pessoas gostam. Não que haja algo de errado com isso, naturalmente, mas é interessante como assustador (ou excitantes), o mundo parece fora dessa zona conforto.

 

Não que eu me considero um pombo-furos designer e programador, mas eu comecei a trabalhar com o Flex Builder 2 este Verão, e devo admitir que foi um pouco assustador no começo. Novos conceitos (para mim), uma nova programação de sintaxe. . . mas uma awesomely emocionante resultado final. Bem, se você está aqui porque você deseja descobrir como fazer o Flex Builder 2 trabalha com ASP Classic 3.0, então não tenho de vos dizer mais sobre o cool-ness factor de aplicações Flex.

 

Vamos continuar com o show

 

Para efeitos do presente muito básica e muito simples exemplo, você precisará ter o Flex Builder instalado no seu computador. Você deve ter pelo menos um pouco familiarizado com os conceitos de programação e com o XML.

 

E, claro, você terá acesso a um servidor Web executando IIS e um banco de dados (SQL Server, por exemplo) para o qual você já pode conectar usando ASP e ADODB. Então, é quase um dado que você precisa para poder escrever consultas SQL.

 

1. Configure um projeto Flex. Este passo é bastante rudimentar e tem sido tratado em detalhe noutros locais, por isso não vou repetir a forma de criar um projeto Flex. (Veja a Flex Ajuda se você realmente não tem uma pista.)

 

2. Para os pontos extras, usar algo diferente do padrão local, e criar um novo diretório em seu servidor web. Chame-lhe o que quiser, mas o mais curto o nome a mais fácil de digitar o URL mais tarde.

 

3. Quando você estiver em uma frente da Fonte vista de sua MXML arquivo, digite o seguinte:

 

<? xml version = "1.0" encoding = "utf-8"?> 
<mx: Application xmlns: mx = "http://www.adobe.com/2006/mxml" xmlns = "*" 
layout = "absoluta" creationComplete = "userRequest.send ()"> 

<mx: HTTPService 
id = "userRequest" 
url = "http://www.myurl.com/flex/request.asp" 
useProxy = "false" 
method = "POST"> 
<mx:request xmlns=""> 
<username> username.text () 
</ username> </ mx: pedido> 
</ mx: HTTPService> 

<mx:Form x="22" y="10" width="493"> 
<mx:HBox> <mx:Label text="Username"/> <mx:TextInput id="username"/> </ mx: HBox> 
<mx:Button label="Submit" click="userRequest.send()"/> 
</ mx: Form> 

<mx: DataGrid id = "dgUserRequest" x = "22" y = "140" 
dataProvider = "(userRequest.lastResult.users.user)" 
width = "493" height = "125"> 
<mx:columns> 
<mx:DataGridColumn headerText="User ID" dataField="userid"/> 
<mx:DataGridColumn headerText="User Name" dataField="username"/> 
<mx:DataGridColumn headerText="E-Mail" dataField="emailaddress"/> 
</ mx: colunas> 
</ mx: DataGrid> 

<mx: TextInput x = "355" y = "273" id = "selectedemailaddress" 
texto = "(dgUserRequest.selectedItem.emailaddress)" /> 

</ mx: Application>

(Sinta-se livre para copiar e colar a partir de tudo isso aqui na sua opinião Fonte.)

 

4. Modificar o seguinte: "http://www.myurl.com/flex/request.asp"

 

Obviamente, que pretende apontar para o URL (se isso é viver em um servidor ou em seu desenvolvimento caixa) e à correspondente diretório que contém o arquivo ASP que irá fornecer a maior parte das informações a você.

 

Neste ponto, você tem a base pronta aplicação Flex. No entanto, não tente executá-lo ainda, pois não temos preparado o arquivo ASP ainda.

 

5. Crie um arquivo ASP e colocá-lo no diretório que você especificou na etapa 4:

 

<% @ LANGUAGE = "VBSCRIPT"%> 
<% 
REM Prevenir page caching 
Response.Buffer = True 
Response.ExpiresAbsolute = Now () - 1 
Response.Expires = 0 
Response.CacheControl = "no-cache" 
Set Conn = Server.CreateObject ( "ADODB.Connection") 
Conn.ConnectionTimeout = 15 
Conn.CommandTimeout = 30 
Conn_Catalog = "Mydatabase" 
Conn_UserID = "web_user" 
Conn_Password = "whatever1t15" 
Conn_DataSource = "555.55.555.55" 

conn.Open "Provider = SQLOLEDB; Data Source =" & Conn_DataSource & "Initial Catalog =" & Conn_Catalog & "User Id =" & Conn_UserID & "Password =" & Conn_Password 

If Request.Form ( "username") <> "" Then 
dim accessSql 
accessSql = "SELECT TOP 55 UserID, UserName, E-mail de usuários com (NOLOCK) WHERE (e-mail não é NULL) E (E-mail <>'') AND (email LIKE '%. com") e nome de usuário LIKE'% "& Request . Forma ( "username") & "% 'ORDER BY UserID" 
Definir Comm = Server.CreateObject ( "ADODB.Command") 
Comm.ActiveConnection Conn = 
Comm.CommandTimeout = 600 
Comm.CommandText = accessSql 
Comm.CommandType = 1 
Definir accessSqlRS = Comm.Execute 

dim mxmlStr, mxmLoop 
mxmlStr = "" 

'Coloque os resultados da query em um Array 
Se não accessSqlRS.EOF E NÃO accessSqlRS.BOF Então 
accessSqlArray = accessSqlRS.GetRows () 
accessSqlRS.Close 
End If 

'Loop através de a matriz e formam o XML STRING 
Se IsArray (accessSqlArray) Then 
mxmlStr = "<users>" 

Para mxmLoop = 0 to UBound (accessSqlArray, 2) 
mxmlStr = mxmlStr & "<user> <userid>" & accessSqlArray (0, mxmLoop) & "</ userid> <username>" & accessSqlArray (1, mxmLoop) & "</ username> <emailaddress>" & accessSqlArray (2 , mxmLoop) & "</ EMAILADDRESS> </ user>" & vbCrLf 
Próximo 

mxmlStr = mxmlStr & "</ users>" 
End If 

Se delUserSql <> "" Then 
delUserSql = NULL 
End If 

Se IsArray (accessSqlArray) Then 
Apagar accessSqlArray 
Definir accessSqlArray = Nothing 
End If 

«Post a XML STRING 
Response.Write (mxmlStr) 
End If 

%>
(Sinta-se livre para copiar e colar a partir de tudo isso aqui na sua página ASP).

 

6. Você precisará modificar o banco de dados string e conexão a consulta SQL. Obviamente, o meu exemplo de banco de dados e suas tabelas podem não funcionar para você. Sinta-se livre para ajustar a sua consulta para que ele aponta para a correta base de dados (SQL Server por IP e nome do banco de dados) e para o correcto campos na tabela correta.

 

Depois de ter construído o Flex projeto, você pode experimentar e executá-lo. Se você já tem todos os seus Flex arquivos no servidor Web, e se o arquivo de referência do Flex para a página ASP está no lugar, tudo deve funcionar.

 

Idealmente, você colocar todos os arquivos necessários em seu servidor web e acessar o aplicativo Flex, digitando o URL (provavelmente apontando para o diretório bin).

 

 

O que faz?

 

Se tudo funciona, a Flex app não vai fazer nada em primeiro lugar. Isso é como é suposto para trabalhar. No meu caso (utilizando a minha base de dados), eu digitar o nome do usuário ou as primeiras letras de um nome de usuário no campo de entrada de texto, clique em Enviar e, em seguida, obter um número de registros que o usuário cumprir a exigência SIMILAR.

 

Com a grelha de controlo preenchido, agora eu posso clicar em qualquer linha gravar e exibir o endereço de e-mail no campo abaixo de uma entrada separada.

 

Nada mau para uma base prova de conceito, né? (E se você tem algo muito, muito mais frio do que isso, usando ASP ou SQL Server, por favor, deixe-me saber sobre isso.)

 

 

Possíveis erros

 

Se você obter quaisquer erros estranho, tente o Google deles, mas os problemas mais comuns são:

 

a) Algum tipo de erro # 1096 no Flex app. Isto tem a ver com os atributos só de leitura de alguns dos ficheiros no seu projecto Flex diretório. O mais fácil trabalhar-se em torno de desativar a opção História para o HTML wrapper (Properties -> Flex Compiler).

 

B) Não há dados, nada acontece quando você clica no botão com aparência estranha ou algum erro caixa quando a Flex app é feito o embarque. Este é o resultado de referenciando o arquivo ASP incorretamente. Tanto quanto eu posso dizer, você precisa de um URL absoluto para o mx: HTTPService para o trabalho. E você talvez queira dar um duplo controlo e certifique-se de que o local no qual você está apontando realmente contém o arquivo ASP.

 

 

Próximos Passos

 

Como foi mencionado ao longo desta breve e simples tutorial, tudo isso é muito rudimentar, de fato. Mas você tem que começar por algum lado, certo?

 

Se você estiver procurando por uma empresa de força solução, você provavelmente deve escrever um serviço Web (utilizando ASP.NET e C #, por exemplo) e inclui algumas medidas de segurança para proteger seus dados.

 

Neste exemplo, presume-se que você lida com a autenticação do usuário antes de o Flex app fica acessado. Se estiver a lidar com dados sensíveis, certifique-se de não permitir o acesso não autorizado para o arquivo ASP que é acessado pelo Flex app. (De qualquer maneira vou ser responsabilizada por qualquer implantados ou acessível ao público, solução que tem sido construída como um resultado desta prova de conceito tutorial e através do qual os dados sensíveis ou outra protecção ter sido comprometida.)

 

 

Chamada de exemplos

 

Como você provavelmente já sabe, a web está repleta de exemplos Flex Builder escrito para ColdFusion, PHP e Java desenvolvedores. Por uma questão de facto, a base para este tutorial foi um PHP tutorial da Adobe Labs. No entanto, há surpreendentemente poucos (se houver) sugestões quanto ao modo de usar Flex Builder com ASP Classic 3.0.

 

Houve um pouco de falar sobre uma solução flexível para ASP.NET, mas que nem sempre apto a necessidade. Então, espero que esta prova de conceito tutorial ajude alguém lá fora, e realizar grandes coisas maravilhosas.

 

Por outro lado, se você tem algum "Flex com ASP" exemplos ou funcionais código trechos, por favor me avise. Gostaria de saber de você.

 

PS: Peço desculpas para o "funky formatação" do código trechos neste post. A base WordPress conta não lhe dar muito wiggle quarto em termos de formatação CSS. Sinta-se livre para tirar os espaços extras e estranhos quebras de linha para formatar o código a seu gosto.

 

Terminado o "tutorial" de Flex + ASP, vem a pergunta, quem está a disposição para comentar este código para nós, eu vo tentar mas naõ sei o que irei conseguir, vou tentar fazer algo mais básico do que já está aí e comentar para vocês.

 

Seria muito interessante a partir deste pequeno código, começarmos a explorar um pouco mais o ASP + Flex já que há essa necessidade também, muitos não conseguem migrar para o PHP, que está sendo meu caso (mais por preguiça, também porque AMO o ASP).

 

Galera, sem mais enrolação, valeu por tudo e espero que gostem.

 

Valeu.

Fonte

 

Postado por luizsnpjr neste tópico

Compartilhar este post


Link para o post
Compartilhar em outros sites

e o que tem de errado? ou até onde você fez exatamente, não consegue a interação?

 

é melhor você continuar no tópico criado anteriormente

http://forum.imasters.com.br/index.php?showtopic=338701

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dizem que a persistência ajuda a conseguir o que queremos, por isso eu voltei, agora sim com o código funcionando, eu testei e está tudo certinho. Outra coisa, não está mais puxando um XML, está puxando uma página ASP.

 

Código do Flex:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
				layout="absolute"
				backgroundColor="#f6f6f6"
				backgroundGradientColors="[#f6f6f6, #bbbbbb]"
				creationComplete="init()"
				viewSourceURL="wp-content/uploads/48/srcview/index.html">
	<mx:Script>
		<![CDATA[
			[Bindable]
			private var ASP:XMLList;
			private function init():void
			{
				var request:URLLoader = new URLLoader;
				request.addEventListener(Event.COMPLETE, RecebeXML);
				request.load(new URLRequest("http://127.0.0.1/asp/bin-debug/asp2.asp"));
			}
			private function RecebeXML(e:Event):void
			{
				ASP = new XMLList(e.target.data);
			}
		]]>
	</mx:Script>
	<mx:Form x="10" y="59">
		<mx:FormItem label="Nome:">
			<mx:TextInput text="{ASP.nome}"/>
		</mx:FormItem>
		<mx:FormItem>
			<mx:Button label="Salvar"/>
		</mx:FormItem>
	</mx:Form>
</mx:Application>

 

Código ASP:

<%
response.write "<?xml version="1.0" encoding="iso-8859-1" ?>"
response.write "<ASP>"
response.write "<nome>TESTE para rodar ASP</nome>"
response.write "</ASP>"
%>

como vocês podem reparar, não fiz nada demais no ASP, só fiz com que ele desse um Response.Write do código XML (que por enquanto foi o máximo que consegui fazer para que o Flex interpretasse).

Usem e abusem, eu já criei um conexão com meu MySQL, fiz um Do Loop e fiz com que ele escrevese na tela o que estava lá pra ver se o resultado iria mudar, tranquilo, funcionou uma maravilha, basta agora criarmos outras funções para INSERT, DELETE e UPDATE.

 

Galera, o código do Flex aí é do 3.0 viu, não estou mais trabalhando com o 2.0 como no código anterior não.

 

Abraços, espero que gostem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, boas novas........kkkkkkkkkkkk

Consegui uma forma de fazer o INSERT com o HTTPRequest do nosso querido Flex, e acreditem, já testei e está funcionando perfeitamente a função.

Abaixo o código completo para o INSERT.

 

 

Código Flex 3.0:

<mx:Label text="Submetendo formulário no método GET" fontSize="20" fontWeight="bold" x="10" y="10"/>

<mx:HRule x="10" y="49" width="80%"/>

<mx:TextInput id="username" x="10" y="71"/>

<mx:Button x="178" y="71" label="Enviar" click="form1.send()"/>

<mx:Label x="10" y="101" text="Resultado"/>

<mx:TextArea x="10" y="118" width="234" height="188" id="textarea1"/>

<mx:HTTPService id="form1" method="post" resultFormat="text" url="http://127.0.0.1/asp/bin-debug/inserir.asp" result="{textarea1.text = String(event.result)}">

<mx:request>

<username>{username.text}</username>

</mx:request>

</mx:HTTPService>

Código ASP para pegar os dados:

Dim Cn

Set Cn = Server.CreateObject("ADODB.Connection")

set Rs = server.createObject("ADODB.Recordset")

 

Cn.ConnectionString = ("DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;PORT=3306;DATABASE=test;USER=root;PASSWORD=root;OPTION=

3;")

Cn.Open

 

NOME = Request.Form("username")

 

response.write NOME

 

INSERIR = "INSERT INTO cadastro (nome) VALUES ('"&NOME&"')"

Rs.Open INSERIR, Cn

 

End If

 

set Rs= Nothing

set Cn = Nothing

Galera, sinceramente falando, estou feliz da vida por conseguir desenvolver estes códigos e mostrar que o nosso querido ASP não vai morrer tão cedo.

Bem, logo logo eu espero voltar com mais algumas notícias boas como por exemplo, conseguir excluir e alterar dados com o Flex + ASP + MySQL.

Até mais galera.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, emfim o sistema completo, CRUD (create, ready, update and delete, em português: Criar Ler Atualizar Apagar).

Abaixo os códigos.

 

ASP:

<%
Dim Cn
Set Cn = Server.CreateObject("ADODB.Connection")
set Rs = server.createObject("ADODB.Recordset")

Cn.ConnectionString = ("DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;PORT=3306;DATABASE=test;USER=root;PASSWORD=root;OPTION=
3;") 
Cn.Open


M = Request.QueryString("m")

If M = 1 Then
%>
<?xml version="1.0" encoding="iso-8859-1" ?>
<asp>
<%
SQL = "SELECT * FROM cadastro ORDER By Id"
Rs.Open SQL, Cn, 3, 1
If Rs.Eof = False Then

	Do
		If Rs.Eof = True Then Exit Do
%>
<cad>
	<id><%=Rs("Id")%></id>
	<nome><%=Rs("nome")%></nome>
	<email><%=Rs("email")%></email>
</cad>
<%
	Rs.MoveNext
	Loop

End If
Rs.Close
%>
</asp>


<%
End If

If M = 2 Then

NOME = Request.Form("username")

response.write NOME

INSERIR = "INSERT INTO cadastro (nome) VALUES ('"&NOME&"')"
Rs.Open INSERIR, Cn

End If

If M = 3 then

ID = Request.Form("id")
INSERIR = "DELETE FROM cadastro Where Id = " & ID
Rs.Open INSERIR, Cn
response.write ID&" deletado com Sucesso"

End If

If M = 4 then

ID = Request.Form("id")
NOME = Request.Form("nome")

SQL = "UPDATE cadastro SET nome = '"&NOME&"' WHERE Id = "&ID
Rs.Open SQL, Cn
response.write "Cadastro alterado com sucesso"

End If

	set Rs= Nothing
	set Cn = Nothing
%>
Galera fiz um código ASP bem simples ok, apenas para testes, e está tudo funcionando.

 

FLEX:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  creationComplete="Pegar.send();">
<mx:HTTPService id="enviar" method="post" resultFormat="text" url="http://127.0.0.1/asp/bin-debug/asp2.asp?m=2"  result="{textarea1.text = String(event.result)}">
		<mx:request>
			<username>{username.text}</username>
		</mx:request>	
</mx:HTTPService>

<mx:HTTPService id="Pegar" url="http://127.0.0.1/asp/bin-debug/asp2.asp?m=1" useProxy="false" />

<mx:HTTPService id="deletar" method="post" resultFormat="text" url="http://127.0.0.1/asp/bin-debug/asp2.asp?m=3"  result="{resultado.text = String(event.result)}">
		<mx:request>
			<id>{informacao.text}</id>
		</mx:request>	
</mx:HTTPService>

<mx:HTTPService id="alterar" method="post" resultFormat="text" url="http://127.0.0.1/asp/bin-debug/asp2.asp?m=4"  result="{alterado.text = String(event.result)}">
		<mx:request>
			<id>{informacao.text}</id>
			<nome>{dados.text}</nome>
		</mx:request>	
</mx:HTTPService>

<!--Teste de envio de informações-->
<mx:Label text="Submetendo formulário no método GET" fontSize="20" fontWeight="bold" x="10" y="10"/>
	<mx:HRule x="10" y="49" width="80%"/>
	<mx:TextInput id="username" x="10" y="71"/>
	<mx:Button x="178" y="71" label="Enviar" click="enviar.send()"/>
	<mx:Label x="10" y="101" text="Resultado dos Envios"/>
	<mx:Label x="10" y="149" text="Resultado do Delete"/>
	<mx:TextArea x="10" y="118" width="234" height="23" id="textarea1"/>
	<mx:TextArea x="10" y="167" width="234" height="24" id="resultado"/>
	<mx:Label x="10" y="199" text="Resultado da Alteração"/>
	<mx:TextArea x="10" y="217" width="234" height="24" id="alterado"/>
<!--Teste de envio de informações-->


<!--Teste para pegar de informações-->
		<mx:DataGrid id="dgPosts" height="131" width="418" dataProvider="{Pegar.lastResult.asp.cad}" x="248" y="70" alternatingItemColors="[#FFFFFF, #FFFFFF]" color="#0B333C" fontWeight="normal">
			<mx:columns>
				<mx:DataGridColumn headerText="Posts" dataField="nome"/>
			</mx:columns>
		</mx:DataGrid>
<!--Teste para pegar de informações-->

<!--Teste para alterar informações-->
		<mx:TextInput id="informacao" x="252" y="239" width="414" height="25" htmlText="{dgPosts.selectedItem.id}" backgroundAlpha="1.0"/>
		<mx:TextInput id="dados" x="252" y="206" width="414" height="25" htmlText="{dgPosts.selectedItem.nome}" backgroundAlpha="1.0"/>
		<mx:Button x="599" y="272" label="Alterar" click="alterar.send()"/>
		<mx:Button x="522" y="272" label="Deletar" click="deletar.send()"/>
<!--Teste para alterar informações-->

</mx:Application>

Espero que gostem, pelo menos, teremos onde pesquisar, onde buscar informações, já que depois de muito buscar na internet, eu não achei nada.

Estou a disposição para quem quiser saber mais detalhes sobre os códigos acima.

Valeu pelo espaço aberto, assim que eu tiver mais códigos prontos e mais bonitos visualmente também, eu estarei postando, por enquanto é só.

Até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa, acabei de achar este tópico que tentamos levar pra frente, mas acho que não teve muita utilidade....rsrsrs.....alguém tem mais alguma notícia sobre o Flex Builder (hoje Flash Builder) + ASP ????

 

O que vocês acham, para sistemas/sites para mobile (dependendo da plataforma já que flash não roda em plataforma iOS) é interessante usar o Flex?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.