Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Ett skumt problem (innehåller mycket kod). [LÖST] ( SE SISTA

Postades av 2002-09-04 09:58:21 - Tommie Severinsson, i forum asp - allmänt, Tråden har 7 Kommentarer och lästs av 525 personer

Hej på er,

har ett skumt problem som jag verkligen inte har någon aning om vad som är felet, men som vanligt är det alldeles säkert något enkelt ;)

Tips på hur Stored Proceduren kan göras annorlunda är även välkommet.

Iallafall, här kommer kod (det blir mycket). Värdena finns i databasen, alla invärden existerar osv.

Stored Procedure:
<code>
CREATE PROCEDURE Sp_InkopInfo
@RowNo Int,
@AccountNo varChar(10)
AS
IF (@RowNo = '0')
BEGIN
SET NOCOUNT ON
SELECT ROWNUMBER, PURCHASENUMBER, ITEMNUMBER, DESCRIPTION, QTYORDERED, STOCKUNIT, DELIVERED, DELIVERYDATE,
LINENO_, PRODNUMBER, CONFIREDDEL
FROM dbo.EPURCHTRANS
WHERE (DATASET = 'TCC') AND (ACCEPT < '3') AND CREDITORACCOUNT = @AccountNo
ORDER BY PURCHASENUMBER
END
ELSE
BEGIN
SET NOCOUNT ON
SELECT ROWNUMBER, PURCHASENUMBER, ITEMNUMBER, DESCRIPTION, QTYORDERED, STOCKUNIT, DELIVERED, DELIVERYDATE,
LINENO_, PRODNUMBER, CONFIREDDEL
FROM dbo.EPURCHTRANS
WHERE (DATASET = 'TCC') AND (ACCEPT < '3') AND ROWNUMBER = @RowNo
ORDER BY PURCHASENUMBER
END
GO
</code>

Windows Scripting Component:
<code>
<?xml version="1.0" encoding="iso-8859-1"?>
<component id="Teracomc">
<?component error="true" debug="true"?>
<registration progid="Teracomc"/>

<public>
<method name="LoggaIn"/>
<method name="InkopInfo"/>

<property name="RowNr"/>
<property name="PurchaseNumber"/>
<property name="ItemNumber"/>
<property name="Description"/>
<property name="QtyOrdered"/>
<property name="StockUnit"/>
<property name="Delivered"/>
<property name="DeliveryDate"/>
<property name="LineNumber"/>
<property name="ProdNumber"/>
<property name="ConfirmedDel"/>
</public>

<implements type="ASP" id="ASP"/>

<script language="VBScript">
<![CDATA[
Option Explicit

On Error Resume Next

'Private Variables
Dim StockItemLength
Dim RowNr
Dim PurchaseNumber
Dim ItemNumber
Dim Description
Dim QtyOrdered
Dim StockUnit
Dim Delivered
Dim LineNumber
Dim ProdNumber
Dim ConfirmedDel

Function InkopInfo(RowNumber)
Dim DBConn
Dim objCmd, objRs
Dim StoredProc

StockItemLength = 1

'If DB connection exists?
If Session.Contents("Function").OpenDBConn(DBConn) Then
'Declare stored procedure
StoredProc = "Sp_InkopInfo"
'Cmd Exists?
If Session.Contents("Function").OpenCmd(DBConn, objCmd, StoredProc) Then
objCmd.Parameters.Append objCmd.CreateParameter("@RowNo", 3, 1, 4, RowNumber)
objCmd.Parameters.Append objCmd.CreateParameter("@AccountNo", 200, 1, 10, Session.Contents("AccountNumber"))
'Execute command
Set objRs = objCmd.Execute

Do While Not objRs.EOF
RowNr(StockItemLength) = objRs.Fields("ROWNUMBER")
PurchaseNumber(StockItemLength) = objRs.Fields("PURCHASENUMBER")
ItemNumber(StockItemLength) = objRs.Fields("ITEMNUMBER")
Description(StockItemLength) = objRs.Fields("DESCRIPTION")
QtyOrdered(StockItemLength) = objRs.Fields("QTYORDERED")
StockUnit(StockItemLength) = objRs.Fields("STOCKUNIT")
Delivered(StockItemLength) = objRs.Fields("DELIVERED")
DeliveryDate(StockItemLength) = objRs.Fields("DELIVERYDATE")
LineNumber(StockItemLength) = objRs.Fields("LINENO_")
ProdNumber(StockItemLength) = objRs.Fields("PRODNUMBER")
ConfirmedDel(StockItemLength) = objRs.Fields("CONFIREDDEL")

StockItemLength = StockItemLength + 1
objRs.MoveNext
Loop
StockItemLength = StockItemLength - 1
InkopInfo = StockItemLength
Call Session.Contents("Function").CloseCmd(objRs)
Else
InkopInfo = "0"
End If
Call Session.Contents("Function").CloseDBConn(DBConn)
Else
InkopInfo = "-1"
End If

End Function
]]>
</script>
</component>
</code>

ASP SIDAN:
<code>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<!-- #INCLUDE FILE="CheckLogin.inc" -->
<%
Dim bColor

bColor = True 'Color on row

Set PMComp = Server.CreateObject("Teracomc")
Items = PMComp.InkopInfo(0)

RowNo = PMComp.RowNr
PurchaseNo = PMComp.PurchaseNumber
ItemNo = PMComp.ItemNumber
Description = PMComp.Description
QtyOrdered = PMComp.QtyOrdered
StockUnit = PMComp.StockUnit
Delivered = PMComp.Delivered
DeliveryDate = PMComp.DeliveryDate
LineNo = PMComp.LineNumber
ProdNo = PMComp.ProdNumber
ConfirmDel = PMComp.ConfirmedDel
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Teracom Components AB - Inköpshanteraren (Purchase Manager)</title>
</head>
<body bgcolor="#ffffff" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">
<table cellpadding="0" cellspacing="0" border="0">
<%
For i = 1 To Items

If ConfirmDel(i) = "1900-01-01" Then
ConfirmDelivery = ""
Else
ConfirmDelivery = ConfirmDel(i)
End If

If bColor Then
%>
<tr id="<%= RowNo(i)%>" bgcolor="#dddddd" class="rowStyle">
<td><%= PurchaseNo(i)%></td>
<td><%= ItemNo(i)%></td>
<td><%= QtyOrdered(i)%></td>
<td><%= StockUnit(i)%></td>
<td><%= Delivered(i)%></td>
<td><%= DeliveryDate(i)%></td>
<td><%= ConfirmDelivery%></td>
</tr>
<%
bColor = False
Else
%>
<tr id="<%= RowNo(i)%>" bgcolor="#ffffff" class="rowStyle">
<td><%= PurchaseNo(i)%></td>
<td><%= ItemNo(i)%></td>
<td><%= QtyOrdered(i)%></td>
<td><%= StockUnit(i)%></td>
<td><%= Delivered(i)%></td>
<td><%= DeliveryDate(i)%></td>
<td><%= ConfirmDelivery%></td>
</tr>
<%
bColor = True
End If

Next
%>
</table>
</body>
</html>
</code>

Om det är något annat ni undra så är det bara till att maila mig (inte iMail utan till jobbet, står i visitkortet).


Svara

Sv: Ett skumt problem (innehåller mycket kod).

Postades av 2002-09-04 10:10:12 - Fredrik Salomonsson

Hej.

Jag undrar bara vad det var för problem. Vad får du för felmeddelande...

//fredda

EDIT: Henkoz hann före.

Borde du inte kunna skriva SET NOCOUNT ON en (1) gång innan IF-satsen i sp:n.


Svara

Sv: Ett skumt problem (innehåller mycket kod).

Postades av 2002-09-04 10:17:31 - Tommie Severinsson

Sorry.. ;) Lite stressad.. ;) Problemet är inte uppenbart eftersom det inte genereras någon somhelst fel.. ;) Den loopar inte ut någonting.. Helt tomt.. Precis som om den inte ens kör loopen.. ;)

tommie.severinsson@teracom-c.com


Svara

Sv: Ett skumt problem (innehåller mycket kod).

Postades av 2002-09-04 10:28:10 - Fredrik Salomonsson


Hej igen.

Svårt det där. Det borde fungera....
Men några tips kan jag alltid ge dig.

Jag skulle nog arbetat med en tvådimensionell array i stället för tio-talet endimensionella. Eller varför inte ha en egenskap som heter ADORS eller något för att returnera ett ADODB.Recordset.

Som det ser ut nu är det lite rörigt tycker jag.

Option explicit på asp-sidan kan också vara bra i detta läge.

//fredda


Svara

Sv: Ett skumt problem (innehåller mycket kod).

Postades av 2002-09-04 10:45:45 - Tommie Severinsson

>> Jag skulle nog arbetat med en tvådimensionell array i stället för tio-talet endimensionella. <<

Skulle jag kunna göra men prestandavinsten är minimal.

>> Eller varför inte ha en egenskap som heter ADORS eller något för att returnera ett ADODB.Recordset. <<

Ej nödvändigt när det jobbas med Command objectet. Får ett "fejkat" recordset genom att köra Set oRs = oCmd.Execute.. får tillgång till alla metoder osv som det finns i ett recordset objekt.

;)

Nää.. visst skall det fungera... såhär ser det ut på sidan..

<code>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Teracom Components AB - Ink&ouml;pshanteraren (Purchase Manager)</title>
</head>
<body bgcolor="#ffffff" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">
<table cellpadding="0" cellspacing="0" border="0">

</table>
</body>
</html>
</code>


Svara

Sv: Ett skumt problem (innehåller mycket kod).

Postades av 2002-09-04 10:56:06 - Fredrik Salomonsson


Hej igen.

Det är möljigt att du inte vinner så mycket prestanda. Vinsten ligger i strukturen...

Vidare har jag inte jobbat med WS Komponenter. Jag antar att de (kan) skall reggas som vanliga com. Är det gjort?

Det här ser lite lurigt ut:
Set PMComp = Server.CreateObject("Teracomc")

Tillhör den inget bibliotek?

//fredda


Svara

Sv: Ett skumt problem (innehåller mycket kod).

Postades av 2002-09-04 11:02:08 - Fredrik Salomonsson


Hej.

Här hittade jag en länk som kan vara värd att titta på...

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/letckerror.asp

//fredda


Svara

Sv: Ett skumt problem (innehåller mycket kod). [LÖST]

Postades av 2002-09-04 11:03:51 - Tommie Severinsson

LÖSNING:

ReDim sträng(255)

Ingen snygg lösning... men det funkar..

Tack för hjälpen..

En WSC reggas precis som ett COM (dll), skillnaden är att du kan jobba i realtid i en WSC utan att behöva rekompilera den hela tiden (plus att IIS låser dll när man använt den vilket innebär att jag måste stänga av IIS, avregga DLL osv) Drygt när jag utvecklar.. ;)

Prestandavinsten med ett riktigt comobjekt är ju betydlig. Anledningen till att ett wsc används här är just för att det kodas om mycket hela tiden, när applikationen är 100% kan vi lätt göra om det till ett riktigt comojekt.

Inget klurigt alls, precis som med riktiga comobjekt.. Måste ju skapa en referens till objektet ( i detta fallet Teracomc ) för att få tillgång till alla mina egenskaper och metoder. ;)

<?xml version="1.0" encoding="iso-8859-1"?>
<component id="Teracomc">
<?component error="true" debug="true"?>
<registration progid="Teracomc"/>

Tycker att min struktur på kod är grym! ;) lätt genomskådlig.. ;) Kanske lite för lite kommentarer.. ;)

Men tillbaka till problemet...... vad kan det vara... skumma bananer.. säg till om ni kommer på något... testar vidare här...


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 817
27 960
271 761
7 693
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies