Stored procedures in Access

0

Witam,

korzystam z bazy MS Access w moim projekcie pisanym w C#.
Zazwyczaj tworzylem wszelakie kwerendy szukające i aktualizujące w MS Access, i w zależności od wyników uruchamiałem inne z poziomu kodu C#.
Stwierdziłem, że może by używać something like strored procedure, ale wyczytałem że ms access nie supportuje tego rodzaju wyrażeń.
Czy do końca jest tak?

Chciałbym w procedurze wykonać kilka selectów, i bazując na zwróconym wyniku wstawić rekord do tabeli.

0

w access nie ma procedur skladowanych
tu jest jakis pomysl jak odpalac kwerendy zapisane w access, nie testowalem, wiec nie wiem czy to dziala, ale napisz jeki jest wynik twoich badan :)

http://www.stardeveloper.com/articles/display.html?article=2001050101&page=1

0
massther napisał(a)

w access nie ma procedur skladowanych
tu jest jakis pomysl jak odpalac kwerendy zapisane w access, nie testowalem, wiec nie wiem czy to dziala, ale napisz jeki jest wynik twoich badan :)

http://www.stardeveloper.com/articles/display.html?article=2001050101&page=1

humm, proste kwerendy select/insert/delete już nauczyłem się obsługiwać, fajna sprawa
ale zależy mi na czymś co będzie w stanie coś policzyć, zwalidować i wypluc

będę jeszcze kombinował xD

ps, może komuś się przyda.
Stworzyłem klasę OleDbConnectionObject w której zaimplementowałem metody komunikacji z db za pomocą kwerend. Jedna z metod, której wynikiem jest tabela danych:

private DataTable ExecuteMultiRowQuery(string procedureName, params string[] queryParams)
        {
            try
            {
                OleDbCommand dbCmd = new OleDbCommand();
                dbCmd.Connection = dbConn;
                dbCmd.CommandText = procedureName;
                dbCmd.CommandType = CommandType.StoredProcedure;

                int counter = queryParams.Length;
                if (counter % 2 != 0) throw new ArgumentOutOfRangeException("parameters_count");

                for (int i = 0; i < counter; i++)
                {
                    dbCmd.Parameters.AddWithValue(queryParams[i], queryParams[++i]);
                    
                }

                OleDbDataAdapter da = new OleDbDataAdapter(dbCmd);
                DataTable dt1 = new DataTable();

                da.Fill(dt1);

                return dt1;
            }
            catch (Exception exc)
            {
                System.Windows.Forms.MessageBox.Show("Exception: " + exc.Message);
            }
            return null;
        }

jako params przekazuję agrumenty do kwerendy, nieparzyste elementy to nazwy parametrów w kwerendzie, parzyste to wartości do nich przypisane :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1