Pierakstīties, izmantojot Microsoft
Pierakstīties vai izveidot kontu
Sveicināti!
Atlasīt citu kontu.
Jums ir vairāki konti
Izvēlieties kontu, ar kuru vēlaties pierakstīties.

Jautājums:
man ir Access DB un tabula, valoda SQL kurā tiek glabāta informācija. Programmas valoda SQL 7.0 Saistīto serveru līdzekļu sadaļā esmu atļāvis valoda SQL Skatīt Access DB tāpat kā citu valoda SQL bāzi. Esmu uzrakstījis arī saglabātu procedūru, kas kopē ierakstus no Access DB uz valoda SQL tabulu. Palaižot no ISQL/vaicājumu analizētāja, saglabātā procedūra darbojas un darbojas pareizi. Zvanot saglabāto procedūru no Dexterity, no SQL Server tiek parādīts šāds kļūdas ziņojums: Heterogēnajiem vaicājumiem ir nepieciešama
savienojuma ANSI_NULLS un ANSI_WARNINGS opciju iestatīšana. Tas nodrošina konsekventu vaicājuma semantiku. Iespējojiet šīs opcijas un pēc tam nodēviet vaicājumu. Vai varu pat palaist šo saglabāto procedūru no Dexterity?


Atbilde:
Jā, bet mums ir nedaudz jāmodificē saglabātā procedūra. Kļūmes iemesls ir tas, ka, lai pareizi nolasītu valoda SQL tabulas Veiklībā, šīs opcijas ir jāizslēdz, lai, izsaucot saglabātās procedūras Dexterity, problēmas ar šīm komandām, pirms izpildīt saglabāto procedūru. Lietotājam ir jānodrošina, lai dati, kas pārkāpj šīs kārtulas, netiek ievietoti valoda SQL tabulā. Tālāk redzamajā paraugā table_access ir piekļuves tabula. Datu table_test ir valoda SQL tabula.

          
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



Saglabāto procedūru varam modificēt, lai iestatītu brīdinājumus šādi:

          
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



Šādā gadījumā iekļautā procedūra manto to zvanu atribūtus. Šajā situācijā Dexterity theaccess_tableprocedure, kas ieslēdz ANSI_NULLS & ANSI_WARNINGS pēc tam izsauc reālo saglabāto procedūru un nodod mūsu parametrus.


Šis raksts bija TechKnowledge dokumenta ID:10011

TechKnowledge saturs

Nepieciešama papildu palīdzība?

Vēlaties vairāk opciju?

Izpētiet abonementa priekšrocības, pārlūkojiet apmācības kursus, uzziniet, kā aizsargāt ierīci un veikt citas darbības.

Kopienas palīdz uzdot jautājumus un atbildēt uz tiem, sniegt atsauksmes, kā arī saņemt informāciju no ekspertiem ar bagātīgām zināšanām.

Vai šī informācija bija noderīga?

Cik lielā mērā esat apmierināts ar valodas kvalitāti?
Kas ietekmēja jūsu pieredzi?
Nospiežot Iesniegt, jūsu atsauksmes tiks izmantotas Microsoft produktu un pakalpojumu uzlabošanai. Jūsu IT administrators varēs vākt šos datus. Paziņojums par konfidencialitāti.

Paldies par jūsu atsauksmēm!

×