|Yesterday is History, Today is a gift, Tomorrow a Mystery | M3 - LRAWD - Referral-link:https://ts.la/p66085
Er is wellicht een betere methode maar dit zou moeten werken. Maak een temp tabel aan en insert het resultaat van een simpele dir, vervolgens ff checken of filenaam erin voorkomt en klaar.
code:
1
2
3
4
| create table #fileExists (s nvarchar(2000)) go insert #fileExists exec master..xp_cmdshell 'dir c:\test.txt' select count(*) from #fileExists where s like '%test.txt%' |
42.7 percent of all statistics are made up on the spot.
Waarom zou je in de stored procedure willen kijken of het bestand bestaat? Kan dat niet in je applicatie?
Als je de import als job in SQL Server wil draaien zou je eens kunnen kijken naar de activex mogelijkheden in DTS (bijv. FileSystemObject). Of werk met de "on success" en "on failure" workflow.
Btw. voor het uitvoeren van xp_cmdshell zijn - afaik - sysadmin rechten nodig. Let dus op je security als je daarmee aan de slag gaat.
Als je de import als job in SQL Server wil draaien zou je eens kunnen kijken naar de activex mogelijkheden in DTS (bijv. FileSystemObject). Of werk met de "on success" en "on failure" workflow.
Btw. voor het uitvoeren van xp_cmdshell zijn - afaik - sysadmin rechten nodig. Let dus op je security als je daarmee aan de slag gaat.
Today's subliminal thought is:
Verwijderd
Waarom in een temptabel?
declare @resultaat bit
exec @resultaat = 'xp_cmdshell 'dir c:\test.txt' , no_output
if (@resultaat = 0 )
begin
print 'joepie hij bestaat'
end
En als je andere gebruiker dan sa wilt laten uitvoeren, even in master-database, extended procedure, zoek de xp_cmdshell op, rechtermuisknop op properties, permissies, en rechten uitdelen op exec, whomever je wilt. Let wel, met xp_cmdshell kan je alles op het systeem. Sql-server is opgestart als een service door het system-account van NT. En de system-account mag alles.
edit
/edit
declare @resultaat bit
exec @resultaat = 'xp_cmdshell 'dir c:\test.txt' , no_output
if (@resultaat = 0 )
begin
print 'joepie hij bestaat'
end
En als je andere gebruiker dan sa wilt laten uitvoeren, even in master-database, extended procedure, zoek de xp_cmdshell op, rechtermuisknop op properties, permissies, en rechten uitdelen op exec, whomever je wilt. Let wel, met xp_cmdshell kan je alles op het systeem. Sql-server is opgestart als een service door het system-account van NT. En de system-account mag alles.
edit
kan je niet beter in een job zetten? kan je nog iemand uit bed pagen als ie knaltDaar deze procedure 's nachts gaat draaien moet er wat aan error handling gedaan worden
/edit
[ Voor 27% gewijzigd door Verwijderd op 20-01-2005 18:57 ]
Check: [rml][ SQL-Server 2000]Bestand kopieert niet goed in DTS[/rml]
Los het op mbv een DTS. Nette flow controle, succes, failure en als je goed kijkt, jawel, diverse functies om je import en bulk insert programmeerwerk makkelijk voor je te maken
Graag gedaan .... Super de Bo.... ah eeehh... ik hoop dat je er wat aan hebt
[edit] Ow ja, zoals hierboven gezegd, maak DTS package, rechtermuis op package: schedule et voila...
Los het op mbv een DTS. Nette flow controle, succes, failure en als je goed kijkt, jawel, diverse functies om je import en bulk insert programmeerwerk makkelijk voor je te maken
Graag gedaan .... Super de Bo.... ah eeehh... ik hoop dat je er wat aan hebt
[edit] Ow ja, zoals hierboven gezegd, maak DTS package, rechtermuis op package: schedule et voila...
[ Voor 13% gewijzigd door zneek op 20-01-2005 23:21 ]
Het gebeurd in een stored proc in dit geval omdat systeem 1 zowiezo door een externe partij wordt beheerd, deze kan ook alleen txt bestanden genereren, deze moeten vervolgens met de huidige db vergeleken worden, tis een extern iets wat een uitbreiding wordt voor de applicatie, maar de applicatie staat aan de client side, dit is server side vandaar dus een stored proc en niet applicatie based. Verder heb ik weinig kaas gegeten van DTS, ga ik me binnekort in verdiepen, maar daar heb ik nu geen tijd voor verder bedankt voor de 2 mogelijke opties ik ga ze ff proberen
|Yesterday is History, Today is a gift, Tomorrow a Mystery | M3 - LRAWD - Referral-link:https://ts.la/p66085
DTS is echt niet complex. Het is net Lego. Je zou zelfs heel simpel iets in 2 stappen kunnen maken: stap 1: het vbscript uit dat andere topic, checked of het bestand bestaat, on succes naar stap 2 die alleen de stored proc in kwestie uitvoert. Kost je 15 minuten om te maken. Ik zou het zo voor je maken, maar het is helaas niet mogelijk om DTS packages zo op te slaan dat je zo ook weer kunt importeren als package, of wel?Paladin schreef op vrijdag 21 januari 2005 @ 13:18:
Het gebeurd in een stored proc in dit geval omdat systeem 1 zowiezo door een externe partij wordt beheerd, deze kan ook alleen txt bestanden genereren, deze moeten vervolgens met de huidige db vergeleken worden, tis een extern iets wat een uitbreiding wordt voor de applicatie, maar de applicatie staat aan de client side, dit is server side vandaar dus een stored proc en niet applicatie based. Verder heb ik weinig kaas gegeten van DTS, ga ik me binnekort in verdiepen, maar daar heb ik nu geen tijd voor verder bedankt voor de 2 mogelijke opties ik ga ze ff proberen
Pagina: 1