Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den,
Vyberte jiný účet.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.

Otázka:
Mám accessové databáze a tabulku SQL, která ukládá informace. V části Funkce propojeného serveru SQL 7.0 jsem SQL accessové databáze zobrazit jenom jako další SQL databáze. Také jsem napsal(a) uloženou proceduru, která kopíruje záznamy z accessové databáze do SQL tabulky. Spuštěná z ISQL/Query Analyzeru se uložená procedura spustí a funguje správně. Volání uložené procedury z dexterity vytvoří následující chybovou zprávu z SQL Server: Heterogenní dotazy vyžadují nastavení možností ANSI_NULLS a ANSI_WARNINGS pro
připojení. Tím zajistíte konzistentní sémantiku dotazů. Povolte tyto možnosti a pak dotaz znovu vysílte. Můžu dokonce spustit tuto uloženou proceduru z Dexterity?


Odpověď: Ano, ale budeme muset uloženou proceduru mírně
upravit. Důvodem SQL, proč se nepodaří, je, že aby bylo možné správně číst tabulky v aplikaci Dexterity, musí být tyto možnosti vypnuté, takže volání uložených procedur v aplikaci Dexterity tyto příkazy před spuštěním uložené procedury vyvolají. Uživatel musí zajistit, aby data, která porušují tato pravidla, nebyla do tabulky SQL nezadá. V následující ukázce je table_access přístupová tabulka. Tabulka table_test je SQL tabulka.

          
if exists (select * from sysobjects where id =

object_id('dbo.access_update') and sysstat & 0xf = 4)

drop procedure dbo.access_update

GO


create procedure dbo.access_update @O_SQL_Error_State int = NULL output


as


INSERT INTO access_table ( DOCNUMBR, DOCAMNT )

SELECT access_test.DOCNUMBR, access_test.DOCAMNT

FROM access_test


GO



Uloženou proceduru můžeme upravit tak, aby se upozornění nastavila takhle:

          
if exists (select * from sysobjects where id =

object_id('dbo.access_update') and sysstat & 0xf = 4)

drop procedure dbo.access_update

GO


create procedure dbo.access_update @O_SQL_Error_State int = NULL output


as


set ANSI_NULLS ON

SET ANSI_WARNINGS ON


exec access_table2 ( DOCNUMBR, DOCAMNT )


GO



V tomto případě uložená procedura dědí atributy toho, co ji volá. V takovém případě dexterity zavolá theaccess_tableprocedure, který zapne ANSI_NULLS & ANSI_WARNINGS a pak zavolá skutečnou uloženou proceduru a předá v našich parametrech.


Tento článek byl TechKnowledge Document ID:10011

TechKnowledge Content

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?
Po stisknutí tlačítka pro odeslání se vaše zpětná vazba použije k vylepšování produktů a služeb Microsoftu. Váš správce IT bude moci tato data shromažďovat. Prohlášení o zásadách ochrany osobních údajů.

Děkujeme vám za zpětnou vazbu.

×