Finns det nån funktion i ado som gör att man kan upptäcka ( efter execute metoden) vilken typ av exekvering av sql satsen , Beroende av paramatrar som skickas i execute funktion . Nepp, det är du själv som kör en SELECT eller INSERT etc, det gör den inte automatiskt. Alltså du måste köra din select,insert eller update. I ADO.Net så talar du om vilken fråga du ska ställa mot databasen genom att skicka in den. Du kan med hjälp en builder som följer med i ADO.Net generera Insert, update och delete efter en egen definierad SELECT. Men måste själv tala om vad som ska köras. På så sätt vet du alltid va det är för typ av fråga som körs. Jag förstår . Hej. Jag har delvis löst det . Recordset m.m.? Ado
Jag vill hämta sql fråga från en textbox , kör execute och sedan avgöra om det handlar om en select fråga eller en ( uppdate fråga , stored procedure) eller annat .Sv: Ado
/Fredrik NSv: Ado
Min tanke var att under körning av programmet /*( själva sql texten är ändringsbar och inte hårdkodad i programmet ) */. exekvera sql och sedan . Om det är en return row fylla vissa kontroller med Recordset som returneras, om Det är en no rerturn row ( till exempel Create tabel ) uppdatera andra kontroller så att den senaste tabellens namn ska synnas ochså .
I och med att det inte finns nån funktion till detta , kanske går det att lösa problemet med hjälp av string hanterar som scannar sql text efter de olika sql nyckelordet . .Sv: Ado
Vad du skulle kunna göra är att du bygger en metod som genererar dina frågor åt dig.
Dock blir det jobbigt om du skall ha avancerade saker för dig. Men enkla CRUD frågot är ju inga större problem.
Säg att du har en Tabel som heter Country och sedan en Dropdown som skall visa alla dina länder. Då skulle du lätt kunna skicka in ex: Country som input i din metod som skapar en dynamisk sträng.
<code>
public string CreateSelectQuery(string[] tables,string connectionString)
....
</code>
Denna metod plockar ut dina tables från string arrayen och returnerar sedan en färdig
SELECT fråga.
<code>
SELECT * FROM <tables>
</code>
På detta vis kan du när du skapar din Dropdown box ex skriva.
<code>
command.ExecuteDataReader(QurtyBuilder.CreateSelectQuery(tables,"Server=......."));
</code>
Samma med INSERT, UPDATE och DELETE
Du kan ju självklart bygga mkt mer avancerade metoder som bygger upp dina Querys etc... Men detta är kanske något att gå på?
//Johan NSv: Ado
genom att skicka option adCmdUnspecified i den tredje parameter av funktion execute . På det detta viset spelar det ingen roll om sql text som hämtas från en textbox kontroll , är en update en select , eller storedprocedur .
själva execute returnerar en recordset . Om den är tom så kan det vara att det handlar om en update .
Men jag tror att det finns nåt procedure som man använder för att avgöra vilken slag execkevering det handlar om !!!!!!! .
Om man skickar den tredje parameter som adCmdTable , och sedan kör en sql frågan som skapar en stored procedur så kommer det att generas ett ADO fel .
Men däremot händer ingenting om tredje paramtern är ( adCmdUnspecified som är standard ) . all slags sql kommer att exekveras korrekt . eftersom Ado avgör själv utifrån sql text vilken exekvering det handlar om .Sv: Ado
Kör du inte ADO .Net? Det låter som ADO Du kanske skall byta forum?
//Johan N