|
How to build a DataBase of data types (int, char, struct, …)?
I would like to build an ACCESS DataBase, containing information about all the data types we use.
For example:
Suppose, we have the following C/C++ code;
typedef char ARRAY_8_BYTES[8];
struct Foo1
{
int a[20];
int b;
ARRAY_8_BYTES a6;
char a[8];
};
struct Foo2
{
Foo1 foo1;
Foo1 *pFoo1;
char c[12];
};
Ideally, I’d like to have an ACCESS DataBase, containing data about the Foo1, Foo2 structures. So, I would be able to build a program, which uses this data base and (for instance) generates automatically the C code structure definitions above.
The questions I ask myself are:
1) How to organize data which is hierarchical by nature using a relational
data base such as ACCESS?
2) Are they better solutions than using ACCESS to solve this kind of
problem?
3) Do you know about other databases or commercial softwares that permit to
do this?
4)Could you please give me either a precise answer or links which can help me?
Many, many Thanks.
|
|
|
|
|
Have you ever used XML? It's great for storing hierarchical data and it's very similar to HTML, so if you've done any web design that will give you a head start. The .NET Framework has lots of built-in classes for dealing with XML files and data streams.
Official W3C XML site: http://www.w3.org/XML/
Microsoft's XML developer center: http://msdn.microsoft.com/xml/
I'm not the one to ask for help on this as I'm not too familiar with the details of how it all works, just a few general ideas, but it's just a thought...
|
|
|
|
|
I have thought about XML, but I am not familiar with it either. So I would like to know if it definitely can help me to build a data base of data types, before I invest time in learning it.
Thank you anyway,
|
|
|
|
|
Hi all,
i have a problem with executing the following command
BDCC Shrinkdatabase ( db_name )
this command gives me an error cannot shrink databse because log file in use
i have tried to run the server for a single user to do that but i had the same error
anybody know about this error
Thanks for help,
Mhmoud Rawas
------------
Software Eng.
|
|
|
|
|
Did youi read the Sql Server Books online. Open it and index on DBCC Shrinkdatabase
Got this samll bit, you should read more about it to get a full understanding
For log files, SQL Server uses target_percent to calculate the target size for the entire log; therefore, target_percent is the amount of free space in the log after the shrink operation. Target size for the entire log is then translated to target size for each log file. DBCC SHRINKDATABASE attempts to shrink each physical log file to its target size immediately. If no part of the logical log resides in the virtual logs beyond the log file's target size, the file is successfully truncated and DBCC SHRINKDATABASE completes with no messages. However, if part of the logical log resides in the virtual logs beyond the target size, SQL Server frees as much space as possible and then issues an informational message. The message tells you what actions you need to perform to move the logical log out of the virtual logs at the end of the file. After you perform the actions, you can then reissue the DBCC SHRINKDATABASE command to free the remaining space. For more information about shrinking transaction logs, see Shrinking the Transaction Log.
Because a log file can only be shrunk to a virtual log file boundary, it may not be possible to shrink a log file to a size smaller than the size of a virtual log file, even if it is not being used. For example, a database with a log file of 1 GB can have the log file shrunk to only 128 MB. For more information about truncation, see Truncating the Transaction Log. For more information about determining virtual log file sizes, see Virtual Log Files.
|
|
|
|
|
I get this error from e.StackTrace:
at System.Data.OleDb.OleDbConnection.CreateInstanceMDAC()
at System.Data.OleDb.OleDbConnection.GetObjectPool()
at System.Data.OleDb.OleDbConnection.CreateProvider(OleDbConnectionString constr)
at System.Data.OleDb.OleDbConnection.Open()
at System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState)
at System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
at WindowsApplication5.Form1..ctor()
What does that mean???
|
|
|
|
|
Thiis linee does not contain your error message. And also what is your code which cause this exception?
Mazy
"One who dives deep gets the pearls,the burning desire for realization brings the goal nearer." - Babuji
|
|
|
|
|
DB: Access 2002
Prog: VB6 (using DAO 3.6)
(Italics are relationships)
tbl_Customer
l_Mem_id
str_First
str_Middle
str_Last
l_Phone
(etc...)
tbl_LATCH
l_ID_id
dt_Date
l_Mem_id
str_Note
tbl_Children
l_ID_id
l_Mem_id
str_Name
dt_Date
dt_DOB
I am trying to build a recordset which pulls all the people from tbl_LATCH and builds a recordset that has a field [Count] which is the total number of children they have and another field [Ages]** which is the ages of the children. Also, included is the fields from tbl_Customer.
**[Ages] i.e. (4, 5, 12, 10) If there were four recordsets returned from the subquery or whatever then it would concat them into one field.
Any help would greatly be appreciated. Thanks in advance.
-Garrett
|
|
|
|
|
Hi Garrett. You may want to have a subquery take care of the [Count] and [Ages] fields, with a custom function to derive [Ages]. Start with a custom function to return an age given a birthdate. Here is a good function that comes from a Microsoft KB article:
Function Age(varBirthDate As Variant) As Integer
Dim varAge As Variant
If IsNull(varBirthDate) Then Age = 0: Exit Function
varAge = DateDiff("yyyy", varBirthDate, Now)
If Date < DateSerial(Year(Now), Month(varBirthDate), _
Day(varBirthDate)) Then
varAge = varAge - 1
End If
Age = CInt(varAge)
End Function Then create a function that takes a parent id (l_Mem_ID in your case) and returns a string of ages for each child. This can be done by executing a query on the fly and looping through the resulting recordset:
Function GetAgesOfChildren(parentID As Integer) As String
Dim sResult As String
Dim sSql As String
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Set conn = Application.CurrentProject.Connection
Set rst = New ADODB.Recordset
'--select statement uses the Age() function
sSql = "Select Age(DOB) From tbl_Children Where l_Mem_ID = " _
& parentID & " Order By Age(DOB)"
'--open the recordset
rst.Open sSql, conn
sResult = ""
'--loop through the recordset to create a concatentated string
While Not (rst.EOF)
If sResult <> "" Then sResult = sResult & ", "
sResult = sResult & CStr(rst(0))
rst.MoveNext
Wend
GetAgesOfChildren = sResult
Set rst = Nothing
Set conn = Nothing
End Function It won't be particularly effecient, but it will get the job done. Your subquery could then just link tbl_Customers to tbl_Children, use the Group By option with the Count() function for your [Count] field, then use the following as an expression for the third [Ages] field in the query grid:
Field-- Ages: GetAgesOfChildren([tbl_Customers].[l_Mem_id])
Table--
Total-- Expression Make the join between tbl_Customers and tbl_Children a left outer join and you'll get zero values for those customers without children records, rather than having those records drop off. Finally then, you can use this subquery in your main query with the tbl_LATCH table to get your final result set.
I hope this helps.
|
|
|
|
|
Hi,
I have a question: How can I set the datasource of a datagrid by using codes? I've been using the properties on the right side to set it.
Then I also have a problem... Why is it that whenever I use:
adodc1.recordset.addnew
ado.Recordset.Fields(0) = Trim(txtname)
ado.Recordset.Fields(1) = Trim(txtage)
ado.Recordset.Update
the data that I save in a database is automatically displayed on the datagrid. But if I use:
Set adocon = New ADODB.Connection
Set adorset = New ADODB.Recordset
adocon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "dbnames.mdb"
adorset.Open "Table2", adocon, adOpenKeyset, adLockOptimistic
adorset.AddNew
adorset.Fields(0) = Trim(txtname)
adorset.Fields(1) = Trim(txtage)
adorset.Update
the data that I save on a database don't appear automatically and it would only appear once I unload and reload my form or if I use
DTG.Columns(0) = gadors.Fields(0)
DTG.Columns(1) = gadors.Fields(1)
DTG.Columns(2) = gadors.Fields(2)
DTG.Columns(3) = gadors.Fields(3)
wherein the problem is that it overwrites the first record on a datagrid and once I unload and reload, that's the only time that the new record would be placed at the end.
I can't use the movenext and moveprevious properly as well whenever I use this type of setup.
Thanks....
|
|
|
|
|
We developed a CS program by C#,the server is SQL Server,i copyed the program to a system without SQL Server,the program can not be run,the error report is something like this:"Can't connect to Database".when i installed the "Connectivity Only" option of SQL Server,the program can be run in this system.
what i want to know is how to run our program without install anything of SQL Server, or just copy something usefull to the system from SQL Server.
Tuliplanet
|
|
|
|
|
Hi,
Seems like you are pointing towards the local machine in your code. Obviously if there is no SQL server on the machine it can't connect.
Itz advisable that you keep the connection string configurable and change the connection string in the configuration and make it point towards a machine where you have SQL Server.
remember .NET requires MDAC 2.5 and above to connect to any database...
regards,
Aryadip.
Cheers !! and have a Funky day !!
|
|
|
|
|
NO,I Pointed towards to the right machine.
Tuliplanet
|
|
|
|
|
How Are you connecting, OBDC dsn? Is it setup? SQL SERVER client utility?
Show us your connection string( leave out sensitive values of course). Sql Server does not need to run on the computer the app is on.
|
|
|
|
|
Ok!The Connection string is:"Server=XXX";uid=XXX;pwd=XXX;database=XXX".
anything wrong?
Tuliplanet
|
|
|
|
|
OK, look at the Server name. Do you have the proper ODBC/Client Utility settings that allow you to access that data server. Test your connections. If you want to connect to Sql server you will need something to access it. You can not just say go talk to this server you need to have connectivity thru software like ODBC/Sql server Client Utility.
|
|
|
|
|
Hello All!!!!
I have got a problem, I have a generalized class for inserting/updating/and deleting data, here are few lines of code which work well for adding new records in database
<br />
<br />
cmdBldr = new OleDbCommandBuilder(dataAdapter);<br />
DataRow nRow = dataTable.NewRow();<br />
nRow.ItemArray = itemArray;<br />
dataTable.Rows.Add(nRow);<br />
dataAdapter.Update(dataTable); <br />
As command builder is used to generate the sql statements so it works well with columns names with no spaces like [FirstName], but if we make it
[First Name] then it throws following exception:
An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll
Can anybody give me the idea that how to reslove this, i dont want to remove spaces because they coulmn names are displayed at run time on form so that if i change the name in table, it get changed on form automatically.
Thanx in Advance
sorry for my bad English.
|
|
|
|
|
You should not use spaces when Naming your Database objects (tables,columns, SP, etc..) rename your columns and replace space with _ (ex. FIRST_NAME)
|
|
|
|
|
Hello Friends,
I have a problem in SQL 2000. I have a table call Employee in that there r many details of employee such as his name his age and other details.
I want to insert one employee name D'souza mike for that i write a query
insert into employee values ('D'Souza Mike', 21)
Here name is D'Souza so that special character ' create problem while executeing query.
any one know how to insert special characters like ' _ % then please tell me
Thank You
Hemant Mane
|
|
|
|
|
insert into employee values ('D''Souza Mike', 21)
|
|
|
|
|
You can't directly insert any special character.Just decode your special character with any other name e.g. "'" you can give your single quote the name "SQT".Now insert this value in the database.Now when you retrieve the value then decode this "SQT" to "'".That's all..... your job has done.
|
|
|
|
|
if the employee's name itself includes the chars : "SQT" ,
it can't work well .
|
|
|
|
|
Either escape the ' with another ' ('') or use an SqlCommand object with parameters. You can set the value of the parameter to a string containing 'special characters' and it will insert without difficulty.
Power corrupts and PowerPoint corrupts absolutely. - Vint Cerf
|
|
|
|
|
Anyone have any hands on with Rapid SQL, we are considering buying an enterprise license.
What are your thoughts on this tool good, bad etc;
Thanks
Tony
|
|
|
|
|