[ASP/Delphi] Integreren met COM(+) en SQLServer *

Pagina: 1
Acties:

  • Darkvater
  • Registratie: Januari 2001
  • Laatst online: 26-08-2024

Darkvater

oh really?

Topicstarter
Ik wil graag een ASP programma maken met COM(+) objects en SQLServer2000 in Delphi. Ik weet al ongeveer hoet het moet, maar ben nog er niet zo bedreven in.

Mijn grootste probleem (nu) is dan ook hoe ik de informatie teruggeef aan de ASP van een SELECT query.

Het boek die ik heb om me op weg te helpen (SQL SERVER 2000 Web Applicaion Developer's Guide) gebruikt natuurlijk bij geen een voorbeeld een SELECT of andere query waar die informatie teruggeeft en doet het ook nog eens in VB.

Ik wilde eigenlijk na het uitvoeren van een Query de (ADO) RecordSet teruggeven naar de ASP pagina, maar waar ik ook gezocht had, heb ik niet gevonden hoe het moet. Ik hoop dat ik duidelijk geweest ben, en dat jullie me op weg kunnen helpen.

Een website, met ASP/DELPHI/DataBase/COM zou ook zeer handig zijn, maar die kon ik tot nu toe niet vinden :'(


Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18-08 21:00

Creepy

Tactical Espionage Splatterer

Misschien ligt het aan mij hoor, maar ik heb geen idee wat je bedoelt.
Je hebt een ASP pagina, je hebt een query en je hebt Delphi. Tot zover is het mij duidelijk.
Wat doe je nu precies en wat lukt er niet?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

modbreak: en kun je de volgende keer een ietwat duidelijkere titel bedenken dan '[ASP/Delphi]', zie mijn voorbeeld

Professionele website nodig?


  • Darkvater
  • Registratie: Januari 2001
  • Laatst online: 26-08-2024

Darkvater

oh really?

Topicstarter
curry684 schreef op 07 juli 2003 @ 16:33:
<span style="color:blue">modbreak: en kun je de volgende keer een ietwat duidelijkere titel bedenken dan '[ASP/Delphi]', zie mijn voorbeeld</span>
Oeps, vergeten de rest van de titel af te maken, foutje :+
Creepy schreef op 07 July 2003 @ 16:08:
Misschien ligt het aan mij hoor, maar ik heb geen idee wat je bedoelt.
Je hebt een ASP pagina, je hebt een query en je hebt Delphi. Tot zover is het mij duidelijk.
Wat doe je nu precies en wat lukt er niet?
Juist, en nu wil ik in Delphi die query uitvoeren en het resultaat, de RecordSet, teruggeven aan de ASP pagina in zijn geheel. Ik wil dus een waarde, de RecordSet teruggeven, maar in de Active Server Object zijn er alleen maar procedures, en heb ik dus geen enkel idee hoe ik de 'variabele' teruggeef.

[ Voor 53% gewijzigd door Darkvater op 07-07-2003 17:07 ]


Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 10:45

mulder

ik spuug op het trottoir

Met een ActiveX object kun je prima dmv van een functie een recordset teruggeven

[ Voor 28% gewijzigd door mulder op 07-07-2003 17:19 ]

oogjes open, snaveltjes dicht


  • Darkvater
  • Registratie: Januari 2001
  • Laatst online: 26-08-2024

Darkvater

oh really?

Topicstarter
Don Facundo schreef op 07 July 2003 @ 17:18:
Met een ActiveX object kun je prima dmv van een functie een recordset teruggeven
Ik geloof best wel dat dat kan, maar hoe? Ik kan het nergens vinden :/


Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Waar zie je een probleem? Weet je hoe je een functie moet maken in een ActiveX object die wat terug geeft? Weet je van welke interface een recordset is? Combineer de twee en klaar :)

We adore chaos because we like to restore order - M.C. Escher


  • Darkvater
  • Registratie: Januari 2001
  • Laatst online: 26-08-2024

Darkvater

oh really?

Topicstarter
LordLarry schreef op 07 July 2003 @ 22:15:
Waar zie je een probleem? Weet je hoe je een functie moet maken in een ActiveX object die wat terug geeft? Weet je van welke interface een recordset is? Combineer de twee en klaar :)
Dat is het probleem. Ik weet niet hoe ik een functie moet maken in een ActiveX object die wat teruggeeft. Kan je mij daarbij helpen?


Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge


  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Je kunt toch wel een functie maken die een RecordSet teruggeeft?
Anders moet dringend eens wat tutorials door gaan lezen.

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Darkvater schreef op 08 July 2003 @ 11:09:
[...]

Dat is het probleem. Ik weet niet hoe ik een functie moet maken in een ActiveX object die wat teruggeeft. Kan je mij daarbij helpen?
Nogmaals, welk onderdeel van daarvan weet je niet? Hoe je een functie moet maken die wat teruggeeft van een bepaald type. Of van welk type een recordset is?

We adore chaos because we like to restore order - M.C. Escher


  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Visual Basic:
1
2
3
Public Function GetRecordSet(strQuery as string) As RecordSet
  Set GetRecordSet  = Conn.Execute(strQuery)
End Function

  • Darkvater
  • Registratie: Januari 2001
  • Laatst online: 26-08-2024

Darkvater

oh really?

Topicstarter
robjanssen schreef op 08 July 2003 @ 12:51:
Visual Basic:
1
2
3
Public Function GetRecordSet(strQuery as string) As RecordSet
  Set GetRecordSet  = Conn.Execute(strQuery)
End Function
Dank je, maar hier heb ik niet zoveel aan. Ten eerste is het Visual Basic, en ten tweede kan je in memberfuncties van Active Server Objects onder Delphi geen functions aanmaken, alleen maar procedures.


Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18-08 21:00

Creepy

Tactical Espionage Splatterer

Darkvater schreef op 08 July 2003 @ 15:02:
[...]

Dank je, maar hier heb ik niet zoveel aan. Ten eerste is het Visual Basic, en ten tweede kan je in memberfuncties van Active Server Objects onder Delphi geen functions aanmaken, alleen maar procedures.
Huh???????????
File -> New -> Other -> ActiveX -> Active Server Object -> Naampje geven -> Op OK klikken -> INaampje aanklikken -> rechtermuisklik -> new -> method -> Parameters -> Return Type zetten.

Hmm.. een return type. Wat zou dat zijn? :P

En niet vergeten op Export to IDL te klikken..

Edit: en in de .pas file kan ik bij de bestaande OnEndPage en OnStartPage procedures rustig functies aanmaken.

[ Voor 22% gewijzigd door Creepy op 08-07-2003 15:55 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Dank je, maar hier heb ik niet zoveel aan. Ten eerste is het Visual Basic, en ten tweede kan je in memberfuncties van Active Server Objects onder Delphi geen functions aanmaken, alleen maar procedures.
Ah, een verkapt antwoord op 1 van mijn vragen :) Het lukt je dus niet om een functie te maken die iets terug geeft.

Ik ken ASO's niet, dus ik begrijp niet helemaal waarom je zegt dat het alleen maar procedures kunnen zijn. Is dat een beperking van die ASO's of denk je dat het door Delphi komt? COM geeft zoiezo altijd HRESULT terug, maar Delphi verbergt dat zodat het lijkt alsof je een eigen type result kan geven.

Hoe dan ook, je kan nog steeds wel resultaten teruggeven mbv procedures. Gewoon een out of in/out parameter nemen en daar je ResultSet in teruggeven.

PS: Zijn het geen Active Server Components? Zie dan ook http://delphi.about.com/cs/aspwithdelphi/

[ Voor 28% gewijzigd door LordLarry op 08-07-2003 16:04 ]

We adore chaos because we like to restore order - M.C. Escher


  • Darkvater
  • Registratie: Januari 2001
  • Laatst online: 26-08-2024

Darkvater

oh really?

Topicstarter
LordLarry schreef op 08 July 2003 @ 16:01:
[...]

Ah, een verkapt antwoord op 1 van mijn vragen :) Het lukt je dus niet om een functie te maken die iets terug geeft.

Ik ken ASO's niet, dus ik begrijp niet helemaal waarom je zegt dat het alleen maar procedures kunnen zijn. Is dat een beperking van die ASO's of denk je dat het door Delphi komt? COM geeft zoiezo altijd HRESULT terug, maar Delphi verbergt dat zodat het lijkt alsof je een eigen type result kan geven.

Hoe dan ook, je kan nog steeds wel resultaten teruggeven mbv procedures. Gewoon een out of in/out parameter nemen en daar je ResultSet in teruggeven.

PS: Zijn het geen Active Server Components? Zie dan ook http://delphi.about.com/cs/aspwithdelphi/
Ik zal nog kijken naar de 'out' parameter en hoe dat precies werkt. Op de site die je gaf ben ik al geweest, maar daar geeft geen een van de voorbeelden geeft een result terug.
I'll keep you updated :)


Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge


  • Tomatoman
  • Registratie: November 2000
  • Nu online

Tomatoman

Fulltime prutser

Als je met de type library editor werkt, moet je er wel voor kiezen om de code als Pascal te laten weergeven en niet als IDL. Dat heeft gevolgen voor de manier waarop de type library editor functieresultaten weergeeft. En voor de help moet je in de type library editor op F1 drukken.

Een goede grap mag vrienden kosten.


  • Darkvater
  • Registratie: Januari 2001
  • Laatst online: 26-08-2024

Darkvater

oh really?

Topicstarter
Ik geef hem een kick voor de mensen die ook iets soortgelijks willen doen en er niet uitkomen.

Om een variabele terug te gefen moet je er een property toevoegen, bijvoorbeeld alleen 'Read'. De Return type zet je op 'lUnknown', want we willen een Recordset teruggeven.

Nadat je alle queries, etc. in je functie hebt uitgevoerd doe je
code:
1
Result := MyAdoDataSet.Recordset;


In je ASP vraag je het op met:
code:
1
2
dim rs as AdoDB.Dataset
set rs = MyASPDelphiComObject.Functienaam


Het is eigenlijk zo simpel, maar nergens staat het normaal beschreven. De IDL help zegt niks, alleen maar stomme 1337 tech-talk en op internet is bijna niks te vinden...echt klote :'(
Naja, nu dus wel...success

[ Voor 10% gewijzigd door Darkvater op 24-07-2003 22:36 ]


Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge

Pagina: 1