Dit werkt:

<?php
$snd_SQL .= "DECLARE @IDPOSBW INT;";
//$snd_SQL .= "SET @IDPOSBW=1;";
$snd_SQL .= "SELECT 'name';";
$rs = PWEB_Func_DB_Query($snd_SQL);
while (odbc_fetch_row($rs)){
echo odbc_result($rs,1);
}
?>

dit niet:

<?php
$snd_SQL .= "DECLARE @IDPOSBW INT;";
$snd_SQL .= "SET @IDPOSBW=1;";
$snd_SQL .= "SELECT 'name';";
$rs = PWEB_Func_DB_Query($snd_SQL);
while (odbc_fetch_row($rs)){
echo odbc_result($rs,1);
}
?>
Ik zit even te kijken naar dit:

SET @IDPOSBW=1

dat zou betekenen dat je veldnaam met een @ begint en ik vraag me af of dat toegestaan is.
hij woont in brazilie, die zit de hele dag aan de koffie achter zn laptopje, gewoon pms blijven sturen
Welke database gebruik je, en check je errorlogs misschien?
Beetje meer uitleg over de SQL:

// lokale variabele definiƫren als integer
DECLARE @IDPOSBW INT;

// waarde geven aan de variabele
SET @IDPOSBW;

// een hier in feite irrelevante output vragen
SELECT 'name';

Het is een ongelofelijk elementair, doch eenvoudig script, maar bij mij doet het moeilijk en bij een andere persoon die het heeft uitgeprobeerd werkt het wel, maar hij werkt met mysql, terwijl het bij mij over SQL Server 2000 gaat over ODBC van win 2003... (exotic or not?)

In de realiteit wil ik, wat hierna volgt, een 1 doen outputten:

<?php
$snd_SQL .= "DECLARE @IDPOSBW INT;";
$snd_SQL .= "SET @IDPOSBW=1;";
$snd_SQL .= "SELECT @IDPOSBW;";
$rs = PWEB_Func_DB_Query($snd_SQL);
while (odbc_fetch_row($rs)){
echo odbc_result($rs,1);
}
?>

ps: de functie werkt prima
Ondertussen weet ik weer iets meer:
Als het script onder Apache draai, dan krijg ik een foutmelding, maar de fout is niet zichtbaar met win2003...

de fout is: not tuples available for this result index
wes schreef op 29.11.2007 22:39
hij woont in brazilie, die zit de hele dag aan de koffie achter zn laptopje, gewoon pms blijven sturen
Yep, koffie, veel bier, bbq en een lekker snoepje bij de hand. En dat alles lekker bij het zwembad met een heerlijk zonnetje. Althans, overdag.

Maar dan het probleem: MSSQL heb ik weinig kaas van gegeten. Ik kan de stored procedures vrij aardig lezen en vertalen naar pgSQL, maar daar houdt mijn kennis wel mee op.

Helaas, het is niet anders.

Succes!
Ach ja bijna je snoepje vergeten!
Hoe is het nu met Juan?
ODBC is toch een connector naar Oracle? In dat geval lijkt het me vreemd dat het @ toestaat in de naam van de variabele, dat is naar mijn weten alleen voor MySQL. Maar ik kan het natuurlijk verkeerd hebben.
[edit]
Het lijkt er op dat ik het verkeerd heb, in dat geval heb ik geen oplossing.
[/edit]
@Niels: ODBC kun je voor diverse databases gebruiken, waaronder Oracle en DB2. Het zou mij niet verbazen dat je er ook MSSQL mee kunt aansturen. Desondanks zou ik voor PDO kiezen, dat is multifuctioneel (mist de juiste driver is geinstalleerd).

De @ gebruik je zeker weten in MSSQL, ik vertaal wel eens een stored procedure van MSSQL naar pgSQL en daar staan er altijd heel veel in.
Inderdaad, de '@' vormt geen probleem bij ODBC -> SQL Server.
Het declaren en setten gaat voortreffelijk, maar blijkbaar kan je na een uitgebreid script geen output meer verwachten.
Vermoedelijk is het een tekortkoming van ODBC in PHP, of misschien nog een andere onbekende reden, waar ik trouwens nog op zoek naar ben.

Reageren