PHP a práce s procedurou v MSSQL – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

PHP a práce s procedurou v MSSQL – PHP – Fórum – Programujte.comPHP a práce s procedurou v MSSQL – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Aricak0
Newbie
13. 2. 2015   #1
-
0
-

Zdravím dámy a pánové, řeším tady drobný problém. Potřebuji přes PHP přes uloženou proceduru, která je v MSSQL DB uložit nějaká data do MSSQL DB. Ale někde dělám chybu. Prosím řekněte mi kde?


		//Inicializace procedury MSSQL	
		$procedura_nazev = "dbo.InsertDat";
		$procedura = mssql_init(".$procedura_nazev.");
		
		
		
		//proměnné do procedury
		$id_procedura=0;
		$sklad=$IDSklad;
		$druhPohybu=$DruhDokladu_exped;
		$radaDokladu=$radadokladu;
		$insert=$insert_select;
		
		
				
	
	       		
		mssql_bind($procedura, "@Ident", $id_procedura, SQLINT4, true, false);
		mssql_bind($procedura, "@Sklad", $sklad, SQLVARCHAR, false, false);
		mssql_bind($procedura, "@DruhPohybu", $DruhPohybuZbo, SQLINT4, false, false);
		mssql_bind($procedura, "@RadaDokladu", $radaDokladu, SQLINT4, false, false);
		mssql_bind($procedura, "@Insert", $insert, SQLBIT, false, false); // !!!
		mssql_bind($procedura, "@Mena", $mena, SQLVARCHAR, false, true);
		
		mssql_bind($procedura, "@FormaUhrady", $FormaUhrady, SQLVARCHAR, false, true);
		mssql_bind($procedura, "@FormaDopravy", $FormaDopravy, SQLVARCHAR, false, true);
		mssql_bind($procedura, "@Poznamka", $Poznamka, SQLVARCHAR, false, true);
		mssql_bind($procedura, "@Kurz", $Kurz, SQLINT4, false, false);
		mssql_bind($procedura, "@ZemeDPH", $ZemeDPH, SQLVARCHAR, false, true);
		
		
		$vydledek_procedury = mssql_execute ($procedura);


uložená procedura vypadá takto:

@Ident       INT OUT,           -- ID 
@Sklad       NVARCHAR(30),      -- @DruhPohybu  TINYINT,
@RadaDokladu NVARCHAR(3),
@Insert        BIT      = 1,    -- 1: Insertem  /  0: Selectem
@IDPosta       INT      = NULL,
@Mena       NVARCHAR(3) = NULL, -- je-li NULL, dotahne se dle rady, nebo hlavni mena
@CisloOrg      INT      = NULL, -- je-li NULL, dotahne se z posty
@PC            INT      = NULL, -- poradove cislo, je-li NULL, dotahne se prvni volne
@DatumPorizeni DATETIME = NULL  -- je-li NULL, dotahne se z posty, nebo GetDate
AS
SET NOCOUNT ON
DECLARE @PosledniPC        INT
DECLARE @Ukod              INT
DECLARE @IDDruhDokZbo      INT
DECLARE @IDDanRezim        INT
DECLARE @RealizacniFak     BIT
DECLARE @JeToZaloha        BIT
DECLARE @TiskovyForm       INT
DECLARE @VstupniCena       TINYINT
DECLARE @ZdrojCisKV        TINYINT
DECLARE @ZaoFak            SMALLINT
IF @IDPosta IS NOT NULL
SELECT
@CisloOrg      = ISNULL(@CisloOrg, CisOrg),
@DatumPorizeni = ISNULL(@DatumPorizeni, Datum),
@Poznamka = Poznamka

Proceduru nevkládám úplnou.

Mockrát děkuji za vaše poznatky...

Nahlásit jako SPAM
IP: 185.40.80.–
Aricak0
Newbie
13. 2. 2015   #2
-
0
-

Musím do procedury načíst všechny proměnné? I když je nepotřenuji? Proč když spustím skript MSSQL nevypíše chybu?

Nahlásit jako SPAM
IP: 185.40.80.–
Aricak0
Newbie
13. 2. 2015   #3
-
0
-

Tak zde byl problém 

		mssql_bind($procedura, "@Insert", $insert, SQLBIT, false, false); // !!!

Teď mám i výstup co se děje, a už mi SQL server píše že mám málo argumentů, tzn, musí být vyplněny všechny...

Nahlásit jako SPAM
IP: 185.40.80.–
Aricak0
Newbie
13. 2. 2015   #4
-
0
-

   

mssql_bind($procedura, "@Insert", $insert, SQLINT4, false, false); // !!!


Takhle je to správně

Nahlásit jako SPAM
IP: 185.40.80.–
Aricak0
Newbie
13. 2. 2015   #5
-
0
-

Stejně bych vás prosil o vysvětlení co znamenají na konci v definici proměnné ty parametry FALSE FALSE?

Nahlásit jako SPAM
IP: 185.40.80.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 62 hostů

Podobná vlákna

MSSQL - práce s řádkem — založil rycmond

PHP a MSSQL — založil Kowalsky95

MSSQL - PHP — založil el

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý