[Sybase]Return status van SP

Pagina: 1
Acties:

  • apa
  • Registratie: April 2001
  • Laatst online: 04-10-2025

apa

Run Forest, ruuuuuuuuuunnnnn!!

Topicstarter
Ik creëer 2 stored procedures:

code:
1
2
3
4
5
6
7
8
create procedure TEST_SP2
  @param1 int
as
begin
  create table #t1 (col1 int)
  insert into #t1 select @param1
  drop table #t1
end


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
create procedure TEST_SP1
  @param1 int
as
begin
  declare @ReturnStatus int
  EXEC @ReturnStatus = TEST_SP2 @param1
  if @ReturnStatus <> 0
  begin
    print 'Return-status ' + convert(varchar(12), @ReturnStatus)
  end
  else
  begin
    print 'OK'
  end
end


Wanneer ik nu TEST_SP1 uitvoer via "Open Client 12.5.1" werkt alles naar behoren en krijg ik als uitvoer "OK". Wanneer TEST_SP1 uitgevoerd wordt via "Open Client 12.5", dan krijg ik als output "Return-status -6".

Verder onderzoek toonde aan dat dit probleem zich voordoet op het "CREATE TABLE" statement in TEST_SP2.

Kan iemand mij zeggen waar die return-status voor staat?

P.S.: Ik weet niet of de driver-versie er wat mee te maken heeft, maar ik heb die er voor de volledigheid toch bijgezet.

PC: R5-2600X | X370-Pro | 2x8GB | 960Pro 512GB | WD 4TB | GTX 660 | Eizo CX240 | Steinberg UR22MkII | JBL LSR305


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 06-05 18:51

Creepy

Tactical Espionage Splatterer

Google toonde mij al vrij snel de volgende pagina: http://manuals.sybase.com...neric__BookTextView/43833

Hierin staat de -6 voor "Miscellaneous user error". Maar dat is naar mijn idee een lekkere algemene vage error ...

"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


  • apa
  • Registratie: April 2001
  • Laatst online: 04-10-2025

apa

Run Forest, ruuuuuuuuuunnnnn!!

Topicstarter
Zeer vaag idd... Die melding had ik ondertussen ook gevonden maar helpt mij niet bepaald. Ik heb de indruk dat dit te maken heeft met de temp-DB (duh), maar kan er niet veel over vinden.

Ik heb ondertussen ook de change-logs bekeken (van 12.5.0 naar 12.5.1) hier en hier en ook het migratie document (12.5.1 naar 12.5.0) hier...

Voorlopig dus nog steeds zonder succes.

PC: R5-2600X | X370-Pro | 2x8GB | 960Pro 512GB | WD 4TB | GTX 660 | Eizo CX240 | Steinberg UR22MkII | JBL LSR305


  • apa
  • Registratie: April 2001
  • Laatst online: 04-10-2025

apa

Run Forest, ruuuuuuuuuunnnnn!!

Topicstarter
Ik heb ondertussen het probleem gevonden. Het heeft niets te maken met het verschil in versies van de Open Client. Op de machine waar de fout optreedt, wordt TEST_SP1 opgestart binnen een transactie. Blijkbaar kan er geen tijdelijke tabel worden aangemaakt in de tempdb wanneer de stored procedure draait binnen een transactie.

De reden dat ik dit niet eerder had gezien is dat ik niet wist dat TEST_SP1 binnen een transactie gestart werd. TEST_SP1 wordt opgeroepen vanuit een tool die "Mercator" heet en die start blijkbaar steeds (minimaal) 1 transactie op waarbinnen die de hele verwerking doet.

De oplossing bestaat er nu in om die "Mercator" zonder transactie te laten werken. Ik ken de gevolgen daar wel van en hetgeen we ontwikkelen is bestand tegen onvoorziene fouten waardoor dat geen probleem vormt.

Indien iemand zou weten hoe je transacties volledig uitschakelt binnen "Mercator": laat maar weten.

PC: R5-2600X | X370-Pro | 2x8GB | 960Pro 512GB | WD 4TB | GTX 660 | Eizo CX240 | Steinberg UR22MkII | JBL LSR305