Kysymys:
Minulla on Access DB ja SQL, joka sisältää tietoja. Olen antanut SQL 7.0:n Linkitetyt palvelinominaisuudet -kohdassa SQL nähdä Access DB:n aivan toisena SQL tietokantana. Olen myös kirjoittanut tallennetun toimintosarjan, joka kopioi tietueet Access DB:stä SQL taulukkoon. Tallennettu toimintosarja suoritetaan ja toimii oikein, kun se suoritetaan ISQL-kyselyjen analysoinnista. Tallennettuun toimintosarjaan soittaminen Dexterityltä antaa seuraavan SQL Server: Heterogeneous-kyselyt edellyttävät ANSI_NULLS että ANSI_WARNINGS asetukset on määritettävä
yhteydelle. Näin varmistat, että kyselyjen semantiikka on yhdenmukainen. Ota nämä asetukset käyttöön ja anna kyselysi uudelleen. Voinko suorittaa tallennetun toimintosyistä myös Dexterityn?
Vastaus:
Kyllä, mutta tallennettua toimintosarjaa on muokattava hieman. Syynä siihen, että jos taulukoita ei lueta SQL oikein dexterityllä, nämä vaihtoehdot on otettava pois käytöstä, jotta tallennetut toimintosarjat Dexterityssä voivat käyttää näitä komentoja ennen tallennetun toimintosarjaa. Käyttäjän on varmistettava, että näitä sääntöjä rikkovat tiedot eivät sisälly SQL taulukkoon. Alla olevassa esimerkissä table_access on access-taulukko. Taulukon table_test on SQL taulukko.
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
Tallennettua toimintosarjaa voi muokata niin, että varoitukset määritetään näin:
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
Tässä tapauksessa tallennettu toimintosarja perii sen kutsumisen määritteet. Tässä tapauksessa Dexterity soittaa theaccess_tableprocedure, joka ottaa ANSI_NULLS & ANSI_WARNINGS soi todellisen tallennetun toimintosarjaan ja ohittaa parametrit.
Tämä artikkeli oli TechKnowledge Document ID:10011