OPENDATASOURCE - SQLSRV

OPENDATASOURCE - SQLSRV

יש לי SP שצריכה להכניס נתונים ל-DB על שרת מרוחק, ואז להריץ שאילתה (שאמורה לכלול את הנתונים שכרגע הוכנסו) ולהחזיר את סט הרשומות. אז יש לי דבר כזה: [מצורף קובץ יותר קריא]
INSERT INTO OPENDATASOURCE( ´SQLOLEDB´, ´Data Source=ws2;User ID=sa;Password=xxx´ ).[testDB].[dbo].[testTbl] (testFld) VALUES (´test´) SELECT * FROM OPENDATASOURCE( ´SQLOLEDB´, ´Data Source=ws2;User ID=sa;Password=xxx´ ).[testDB].[dbo].[testTbl]​
מה שקורה, זה שהנתונים מוכנסים, אבל הם לא נכללים בסט הרשומות שהשאילתה השנייה מחזירה... אם אני מנסה לשלוף אותם דרך connection אחר (קריאה ל-SP אחרת, מדף ASP, אחרי שהראשונה הסתיימה), הנתונים החדשים כן מוחזרים לי... זה אומר שמשום מה, כשאני כותבת את ה-OPENDATASOURCE הראשון, נוצר הקשר לשרת המרוחק, ובשאילתה השנייה בעצם הקשר עוד פתוח... כי אני לא מקבלת עדכונים... שזה לא הגיוני, כי אם כך למה צריך פעמיים OPENDATASOURCE
אוף.
אני תמיד יכולה לפצל את הקוד לשתי SP, אבל אני מעדיפה שלא... למישהו יש רעיון
 
ובאותו נושא, משהו קצת יותר קריטי

את ההכנסה לטבלה בשרת המרוחק, אני רוצה לעשות עם IDENTITY_INSERT ON, אבל אני לא מצליחה להריץ את הפקודה עם OPENDATASOURCE :
SET IDENTITY_INSERT OPENDATASOURCE( ´SQLOLEDB´, ´Data Source=ws2;User ID=sa;Password=xxx´ ).testDB.dbo.testTbl ON​
נותן לי את השגיאה:
Incorrect syntax near the keyword ´OPENDATASOURCE´.​
וזה כבר ממש לא טוב
 

eli_leiba

New member
thats another reason to use linked

server that has the dot notation server.database.user.table and the SET syntax recognizes it
 

eli_leiba

New member
you can use linked server

instead of opendatasource(openrowset make sure set implicit_transactions is off in the remote server I think that linked server is better to use its more flexibale and has more functionality
 

גרי רשף

New member
אלי, אם כבר עלית לשידור..../images/Emo22.gif

האם אפשר להבין מזה שרשימת הפונקציות המצרפיות סגורה ולא ניתן להגדיר פונקציות חדשות (UDF)?
 

גרי רשף

New member
למה זה השתרשר לכאן?../images/Emo22.gif

שרשרתי את זה להודעה אחרת.. איפה ה-DBA של תפוז?
 
למעלה